运行服务器的瓶颈测试

时间:2012-09-07 17:44:32

标签: java

我正在尝试检测服务器中的瓶颈,而我很难决定从哪里开始。机器崩溃之前的症状是连接丢失(超时,这是当客户端看到响应时间过长时发生的情况,可能表示服务器端代码无法分配处理器,请求无法没有处理)和内存不足的问题。后面的错误代码实际上是由JVM在错误日志中给出的,但我很难相信RAM和缺少可用的CPU同时成为瓶颈。 (在之前崩溃的时代,它一直以上述方式崩溃。)我们有自己的内部服务器代码,我不会将其归类为类似于Apache或我见过的任何其他代码。 (对不起,如果这使得建议更加困难。)

我想花一些时间在本地创建一个有点受控制的测试。我正在运行服务器,我正在创建一个程序,它将从本地服务器请求不同的东西。什么是监控RAM / CPU的好方法?我目前正在使用Java的VisualVM,但是当我使用某些测试时,监视器会停止响应。

任何想法都会非常感激。就像我提到的那样,我正在尝试获取尽可能多的有用数据,以帮助我进一步排除故障。一般来说,当出现这样的瓶颈问题时,采取什么样的一般策略?实时服务器都在Windows Server 2008上运行.Java的版本是7.03。我的本地盒子运行的是Windows 7,也有Java 7.03。我不想做太多的假设,但我认为假设Server 2008和Windows 7非常相似是合理的。 (操作系统架构是相同的。)除此之外,我的本地机箱与我们的服务器具有相同的硬件。

1 个答案:

答案 0 :(得分:1)

对于Windows,您需要:

1)建立“绩效基准”

2)尝试重现瓶颈,并将压力下的行为与基线进行比较

3)找出瓶颈的原因并予以纠正。

这些链接有助于:

您还应该查看这些TCP / IP注册表设置: