我的IIS服务器在C#应用程序中相当标准的API调用上总是遇到奇怪的、间歇性的20- 30秒滞后峰值。我将在下面添加服务器详细信息,以防有人感兴趣
为了查看我的应用程序是否有问题,我认为添加X射线进行监控是明智的,甚至添加了我自己的子分割,以查看是否是特定的代码区域造成的;我所了解到的是,根据我的数据,这些区域中的每一个都运行良好,并且不是延迟的原因。
每当我分析执行时间更长的调用时,甚至在最近的一个3.48s调用的情况下,通常应该花费300 ms(参见下面的屏幕截图),证据总是相同的-x射线中的第一行有一些大的数字(3s到30 s),当我扩展时,下面的细节总是在毫秒范围内,并且不加起来3.6s或30 s等。
我想问如何解释这一点-每当我看到整个调用花费了那么长时间,但扩展的跟踪细节以毫秒为单位,这是否只是意味着我的应用程序很好,但实际的整个调用(网络延迟,工作进程,Web服务器等)是罪魁祸首?
我只是想知道我应该从哪里开始找如果这有意义的话。
IIS服务器该服务器是AWS上的EC2 T2介质,流量可以忽略不计(每天可能有100个API调用)。我有一个单一的服务器由于低负载。我的IIS应用程序池中的最大工作进程数设置为7,队列长度为1000,启动模式为AlwaysRunning。我没有做太多的微调服务器的方式。
非常感谢您的时间和任何指导。
1条答案
按热度按时间ig9co6j11#
您可以在控制台中查看原始跟踪数据,以查看每个子段的开始和结束时间。这可以引导你去你应该关注的地方。如果段的开始时间和第一个子段的开始时间有很大的差距,那么你应该关注段所代表的代码的开始。
点击AWS X-Ray控制台中的轨迹,然后点击右上角的“原始数据”。
您应该看到段和子段的“start_time”和“end_time”。