【发布时间】:2011-12-01 00:02:23
【问题描述】:
我正在基于 Entity Framework 4.0 数据模型开发 WCF 数据服务,但在当前情况下我们无法进入生产环境。
我的客户端应用程序正在添加和修改大量对象,大约 100,000 个。然后它调用服务的 SaveChanges 方法以将所有更改保留在单个操作中。 WCF 数据服务托管在 NServiceBus 主机进程中,但我不知道这是否会导致问题。
这可行,但在 1-CPU、4GB RAM、Win2008 x64 虚拟机上需要一个多小时。更重要的是,CPU 利用率高达 100%。 RAM 消耗在 75% 和 85% 之间波动。这是在开发环境虚拟机中,因此服务覆盖的 SQL Server 2005 数据库是本地的。 WCF 数据服务的主机进程在此过程中消耗了大约 1.2 GB。
有什么想法吗??非常感谢!
【问题讨论】:
-
内存消耗很容易计算。但是你有没有看过哪个服务如此严重地消耗 CPU 时间?
-
我以为是 WCF 数据服务的主机进程占用了时间,但事实并非如此…… WCF 数据服务实际上托管在 IIS 中,它是托管的客户端在 NServiceBus 主机进程中。因此,几乎所有时间都由客户端占用(同样,在 CPU 时间的 85% 和 98% 之间波动)。
-
分析您的应用程序。这是任何性能问题的第一步。
标签: entity-framework nservicebus wcf-data-services