java - 运行服务器瓶颈测试

标签 java

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

我想花一些时间在本地创建一个稍微受控的测试。我正在运行服务器,并且正在创建一个程序,该程序将从本地服务器请求不同的内容。监控 RAM/CPU 的好方法是什么?我目前正在使用 Java 的 VisualVM,但是当我用一些测试来锤炼它时,监视器停止响应。

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

最佳答案

对于 Windows,您需要:

1)建立“绩效基线”

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

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

这些链接会有帮助:

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

关于java - 运行服务器瓶颈测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12322962/

相关文章:

java - 为什么它给我一个 "method call expected"错误?

java - JAVA 中 URL 背后的逻辑

java - MouseListener 的问题

java - 无法到达链接 th :src route on thymeleaf

java - Spring 试图从里程碑存储库中提取快照

Java 代码,将参数传递给方法

java - 打印出用户指定长度的第一部分

java - ScanResults 用两个字符串设置我的变量,但返回值只有一个

java - 无法从 .xlsx 单元格读取 RGB 数据

java - 应用于 AlertDialog 的样式无法正常工作