我试图检测服务器中的瓶颈,并且我很难决定从何处开始。机器崩溃之前的症状是丢弃的连接(超时,当客户端看到响应时间太长时会发生什么情况,可能表明处理器无法由服务器端代码分配,并且请求不能不会被处理)和内存不足的问题。后面的错误代码实际上是由JVM在错误日志中给出的,但我很难相信内存和缺少可用CPU在同一时间成为瓶颈。 (在之前的崩溃时代,它一直以上述方式崩溃)。我们有自己的内部服务器代码,我不会将它分类为类似于Apache或我见过的任何其他代码。 (对不起,如果这让建议更困难。)对服务器运行瓶颈测试
我想花一些时间在本地创建一个有点可控的测试。我正在运行服务器,并且正在创建一个程序,它将向本地服务器请求不同的事情。监视RAM/CPU的好方法是什么?我目前正在使用Java的VisualVM,但是当我用一些测试锤击它时,监视器会停止响应。
任何想法都将不胜感激。就像我刚才提到的那样,我试图抓取尽可能多的有用数据,以帮助我进一步排除故障。一般而言,当出现这样的瓶颈问题时,需要采取哪些一般性策略?活动服务器全部运行在Windows Server 2008上。Java的版本是7.03。我的本地机器运行Windows 7,同时还有Java 7.03。我不想做太多的假设,但我认为假设Server 2008和Windows 7非常相似是合理的。 (操作系统架构是相同的。)除此之外,我的本地盒子与我们的服务器具有相同的硬件。
可能有助于如果您提供的应用程序/服务器正在运行的操作系统,因此我们可以建议使用命令或工具来监视基础操作系统。 – Lipongo
问:什么是操作系统?问:您是否已经尝试在操作系统级别进行监控(例如Windows的任务管理器和/或PerfMon,ps -eaf,top,Linux的iostat等)? – paulsm4
感谢您对操作系统的建议,我做了上面的编辑。 – Sal