內存監控工具

在實踐中,常常遇到對JVM參數進行設置了,而且本身內心以爲應該不會出現內存溢出了;但不幸的是內存溢出仍是發生了。不少人百思不得其解,那我能夠確定地告訴你,你設置的JVM參數並無起做用(本文咱不探討沒有起做用的緣由)。不信咱們就去看看,下面介紹如何使用SUN公司的內存使用監控工具jvmstat. linux

本文只介紹如何使用jvmstat查看內存使用,不介紹其安裝配置。有興趣的讀者,可到SUN公司的官方網站下載一個,他自己已經帶有很是詳細的安裝配置文檔了。這裏假設你已經在你的應用服務器上配置好了jvmstat了。那咱們就開始使用他來看看咱們的服務器究竟是有沒有按照咱們設置的參數啓動。 windows

首先啓動服務器,等服務器啓動完。開啓DOS窗口(此例子是在windows下完成,linux下一樣),在dos窗口中輸入jps這個命令。以下圖

窗口中會顯示全部JAVA應用進程列表,列表的第一列爲應用的進程ID,第二列爲應用的名字。在列表中找到你的應用服務器的進程ID,好比我這裏的應用服務器進程ID爲1856.在命令行輸入visualgc 1856回車。進入jvmstat的主界面,以下圖: 服務器

上圖分別標註了伊甸園,倖存者0區,倖存者1區,養老區和永久存儲區。圖上直觀的反應出各存儲區的大小,已經使用的大小,剩下的空間大小,並用數字標出了各區的大小;若是你這上面的數字和你設置的JVM參數相同的話,那麼恭喜你,你設置的參數已經起做用,若是和你設置的不一致的話,那麼你設置的參數沒有起做用(多是服務器的啓動方式沒有載入你的JVM參數設置。) jvm

在優化服務器的時候,這個工具頗有用,他佔用資源少。能夠隨應用服務器一直保持開啓狀態,若是系統發生內存溢出,能夠一眼就看出是那個區發生了溢出。根據觀察結果進行進一步優化。 工具

相關文章
相關標籤/搜索