ps aux grep java_linux命令ps-aux监控java进程
linux下用ps -aux可以監控java的進程情況。
linux根據內核的不同對每個進程分配的最大使用內存不同,如果是32位機器,cpu最大的尋址空間是2的32次方,4G,但內核分配給每個進程最大的內存肯定是小于4G,經過重新編譯的內核分配給java進程的最大內存是2G,如果tomcat中的catalina.sh中的java-opts Xms1024m -Xmx1600,那么你就要小心了,根據tomcat指南中介紹,tomcat的請求和響應是通過線程池這種異步通信機制來完成的,而每個線程除了JVM會給它分配堆棧外,還要占用操作系統的一些內存資源,當然沒有固定大小,原因是線程可以共享進程的內存資源。如果jvm是1.6G,線程數達到一定的數量,即訪問量不斷增大的時候,線程一共占用操作系統的內存資源超過400M,那么一個java進程就很可能操作2G的限制,導致無法正常提供服務。
其實,java進程的內存的實際使用達不到2G,這里指的是java進程的虛擬內存。我們可以用ps -aux很好的觀察到,VSZ字段就是虛擬內存的使用量,指的是將整個進程一次裝入到內存里所需要的內存大小,RSS字段是進程實際使用內存的大小。根據剛才的分析,對VSZ字段的監控可以很好的起到報警預防作用。當然為了保證服務的穩定與快捷,還是應該合理的調整java-opts 的參數。
關于JVM的內存管理方面,可以參考以下文章:
在命令行下用 java -XmxXXXXM -version 命令來進行測試,然后逐漸的增大XXXX的值,如果執行正常就表示指定的內存大小可用,否則會打印錯誤信息。
錯誤顯示如下:
[root@ngtsl68 bin]# java -Xmx2700M -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
正確顯示如下:
[root@ngtsl68 bin]# java -Xmx2600M -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)
總結
以上是生活随笔為你收集整理的ps aux grep java_linux命令ps-aux监控java进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1443B. Saving the Ci
- 下一篇: 2019-06-13 Java学习日记之