windows-server-2008 – 诊断VM上的慢速数据处理
我们正在尝试从虚拟机内部诊断显然运行缓慢的虚拟机.
情况: >我们在Windows Server 2008R2上有一个IIS托管的应用程序,运行在6核12GB虚拟机上. 数据库报告等待异步网络IO所花费的大量时间,即.等待应用程序使用数据. 几周前,消息处理率突然下降了70-80%.据我们所知,没有任何变化:应用程序未被修改或重新配置,性能计数器未指示负载特性的任何变化.基础设施的所有者表示,他们的结果没有任何改变. 作为重新启动过程的一部分,应用程序已重新加载其消息队列.这涉及一个几十行的简单SELECT,然后读入内存结构.数据库在几秒钟内为SELECT提供服务,但在读取结果集的应用程序上等待约10分钟.这是一个涉及非常简单的反序列化的单线程操作,在这个硬件上不应该花费超过几分钟. 我目前的理论是网络延迟在某种程度上有所增加,但ping仅报告’< 1ms',我们在任何情况下都没有基线. hrPing报告从应用程序服务器到数据库的0.5到2毫秒的时间. 另一种可能性是虚拟机的实际CPU容量在某种程度上有所下降,但我希望这表现为增加的“明显”负载. 我们还有其他调查途径吗?
我不是什么专家,但这是我的2美分:
1)消除疑虑: 从DB到App服务器进行2次大文件夹传输,反过来大约500 MB. 1文件夹应包含500 MB大小的单个二进制文件.第二个文件夹应包含数千/数百万个文件,所有文件都在1KB或更少的文件中,并查看每种情况的网络性能.第一个将向您显示低数据包计数高有效负载流的模拟,第二个(将模拟数据库事务)将向您显示高数据包计数低有效负载流的模拟.这将让您了解他们在那里可以使用的网络环境以及您的网络问题是否属实.请记住,切换容量不仅仅是端口速度.到达10个数据包的10 MB / s与交换机上的负载(交换机CPU利用率)不同,10 MB / s到达100,000个数据包……交换机必须传输每个数据包,无论有效负载如何,您都可以获得网络饱和如果你没有足够的交换容量(每秒数据包),很容易.现在可能(99.9%)在数据中心不会出现这种情况,但在测试之前你永远不会确定 2)第二点应用配置: 我希望这是你的应用程序,你正确配置它,如果没有,大多数JDBC驱动程序都有批处理事务,有时如果没有在持久性提供程序中明确定义,可能会导致类似于您的体验(等待一定数量的应用程序)在执行查询之前实际提交事务或等待多个读取之前的写入操作.即使这样,这些批处理操作的超时大约为秒或2,然后它们提交事务,无论批处理队列是否已满 3)第三点云合同精细打印: 现在,由于这是一个云提供商,请检查细则.您所指的交易类型将涉及主机总线上的大量交易.大多数提供商现在限制每个虚拟机的总线利用率,但他们没有准确地宣传它(你会发现gt / s的限制).因此,当数据到达时,将其从网络接口通过总线传输到VM的RAM会产生巨大影响(请记住,您的VM在资源上不匹配,因此它们没有获得相同的份额,因此这么简单网络工作量不同).您受限的一个很好的指标是拥有1G连接,尝试在本地无负载地传输大型二进制连续文件,并且永远不会达到50~60 MB / s(450-480 Mbps) 无论如何希望有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows提高_1.4进程通信
- Windows服务器
- windows – 如何获取Internet Explorer支持的SSL / TLS密码
- .net – 如何命名我部署的应用程序?
- 安装程序 – 当运行RemovePreviousVersion时,MSI不安装所有
- 2003服务器A级BT安全配置指南(2/3)
- windows-server-2008 – 使用setspn.exe创建SPN – 访问权限
- user-interface – win32 select edit on edit ctrl(textbo
- windows – 仅消息窗口是否可以接收WM_QUERYENDSESSION?
- Windows服务安装项目 – 以管理员身份运行服务