我有一个网点网络应用程序,并想要测量响应时间。我现在有两项措施。“内部”度量是在web应用程序本身内进行的。“外部”度量是从客户端往返的时间(包括网络延迟等)。
显然,内部响应时间总是小于外部响应时间,有时非常显著。
我想要的是另一个(可能超过1)度量,即这两个度量之间的度量。我将如何进行这种测量?例如,一种忽略网络传输时间的度量,但在请求到达服务器计算机/ IIS / my应用程序池/等时立即启动。
不幸的是,我还没有足够的IIS知识来澄清这个问题,更不用说自己来回答了。
编辑:一些进一步的信息
web应用程序是一个c#计算引擎。没有数据库访问,没有用户。应用程序公开WCF端点。响应时间在200毫秒左右是相当一致的,但有时会达到峰值,而我所关心的正是这些峰值。峰值的一个来源是应用程序池循环(每29小时一次),但我们可以安排它。
我正在测量服务器本身上的客户端的性能,以绕过网络。这消除了许多尖峰,但不是全部。服务器以30%的CPU使用率运行负载。客户端cpu的使用可以忽略不计。
发布于 2015-07-26 05:24:27
我想要的是另一个(可能超过1)度量,即这两个度量之间的度量。我将如何进行这种测量?
如果您可以访问创建此应用程序的开发人员,请让他们编写一个小的工具包(无阻塞!)这使您可以直接从应用程序中提取此计数器。
如果不能,则需要开始调试应用程序本身,以确定它在执行过程中花费了多长时间和时间。
因为这是一台windows机器,所以您可以从过程监测器开始,以便更好地了解每个请求期间发生的事情。然后,您可以使用更健壮的调试工具,如windbg logger.exelogger.exe。
发布于 2013-09-28 19:24:06
快速和简单:直接在同一台服务器上或(如果您害怕负载影响)在同一个网络(通常是您的web应用程序服务器所在的DMZ )上启动您的测量。
实际上,您了解到web应用程序的不同性能因素:
看到这里的差异是很正常的。如果不是的话,这个测量结果将是值得怀疑的。
但是,如果您希望避免因不同的网络速度、带宽、客户端问题等而造成的测量误差,请在本地主机上开始您的总体响应时间测量(并根据此来标记结果)或增加测量点(客户端)的数量、测量时间框架和计算平均金额(您可以为此目的创建自己的JavaScript,或者可以使用现有的工具,例如Google )。
发布于 2013-10-11 03:00:05
听起来像是绩效计数器的工作。如果您单击start ->,运行-> Perfmon.msc,那么在运行的应用程序中,您可以添加对IIS和系统不同方面的各种监视。它应该能够为IIS请求提供端到端的答案,包括它们等待处理的时间和处理时间。
它还允许您将它们保存到一个文件或DB中,如果您希望在更长的时间内登录的话。
你说CPU以30%的速度运行。这是一台多核计算机吗?如果它有4个内核,并且您的代码没有并行化,那么即使处理器看起来不是这样,您也可能会因为使处理器变得最大而感到痛苦。
https://serverfault.com/questions/541541
复制相似问题