2010-02-15 65 views
3

我正在尝试性能测试一个wcf web服务,它应该会获得很多流量。哪些性能计数器是明智的使用和出于哪些目的..当然,我正在查看CPU和RAM,但是我想知道IIS何时正在排队以及何时遇到问题...队列的Webservice wcf性能计数器

任何有关明智性能计数器的建议感激地收到...

干杯亚历克斯

回答

0

分析性能计数器很复杂,需要大量的练习,这是我的方式,说我没有足够的经验来给出一个完整的列表。

你会寻找一些具体的事情开始。 首先是返回web服务调用需要多长时间。这告诉你,如果你在这个负载下甚至有性能问题。 接下来,每个人都看着CPU。然而,这并没有告诉你很多。 内存很好,但是您想知道您的应用程序多久分页到磁盘,因此请检查页面故障/秒。 检查您的逻辑和物理磁盘的当前磁盘队列长度。如果您的物理磁盘正在排队,您正在读取/写入磁盘。

除此之外,你通常会试图找到一个特定的和可能的晦涩难懂的问题。

我通常会分阶段进行性能测试。使用基础知识进行第一次测试,并且如果某个特定页面出现问题,请查看其造成的负载。

如果整个生产服务器运行不正常,则添加更多硬件会更容易,但我更愿意查看正在运行的代码并使其更好。

0

之前您运行性能监视器,您要添加的注册表项:

HKLM/Services/CurrentControlSet/service/ 
    Add ServiceModelService 4.0.0.0 
    under that add Performance then add a DWORD FileMappingFile. 
    The size for that will be number of services exposed * 33 * 350. 

在你的配置,那么你会增加

<system.ServiceModel> 
    <diagnostics performanceCounters="ServiceOnly"/> 
</system.ServiceModel> 

你可以看以下计数器: CPU/RAM(用于内存泄漏)/用于每个服务呼叫和呼叫持续时间以及呼叫未完成

CPU will show you how heavily your are saturating your server 
RAM will show if you have memory leaks if it continues to grow and grow and grow 
Calls will show the number of calls you are getting accumulative, 
Calls Per Second will give you the volume you're handling 
Calls Outstanding are clients that are waiting because your services could not handle the volume. 

如果您在这些分组中发现有问题的号码,请开始查看“呼叫故障”或“呼叫失败”等其他元素。 (不知道故障和故障之间的区别)

很少有人需要深入研究问题,而不是仅提供服务的数字。当你进入另外两组计数器时,你的共享内存利用率变得非常高。