我有一個Jetty服務器,用於我正在處理的應用程序的websocket連接。唯一的問題是Jetty消耗太多虛擬內存(!2.5GB虛擬內存)和大約650RES。瞭解Jetty的內存使用情況
我的問題是,如上所述,大部分內存(大約12GB)不是堆大小,因此分析它並理解正在發生的事情更困難。
對於如何理解12gb消耗的來源以及如何計算內存泄漏或服務器的任何其他問題,您是否有任何提示?
我想澄清我的意思是虛擬內存(因爲我的理解可能是錯的)。虛擬內存是「VIRT」,當我運行頂部時。這裏是我得到的:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
-------------------------------------------------------------
9442 root 20 0 12.6g 603m 10m S 0 1.3 1:50.06 java
謝謝!
哪個版本的Jetty? –
Joakim,我正在使用8.1.7.v20120910 – user220755
檢查內存消耗與 long totalMemory = Runtime.getRuntime()。totalMemory(); long freeMemory = Runtime.getRuntime()。freeMemory(); return(totalMemory - freeMemory); – Hurda