我試圖檢測服務器中的瓶頸,並且我很難決定從何處開始。機器崩潰之前的症狀是丟棄的連接(超時,當客戶端看到響應時間太長時會發生什麼情況,可能表明處理器無法由服務器端代碼分配,並且請求不能不會被處理)和內存不足的問題。後面的錯誤代碼實際上是由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