linuxjmap
分析CPU佔用的方法和手段:
1. top命令:可以查看實時的CPU使用情況。
2. ps -ef命令:可以查看雹凳纖進程以及進程中線程的當前CPU使用情況以及屬於當前狀態的采樣數據。
3. jstack:Java提供的命令。可以查看某個進程的當前線程棧運行情況。根據這個命令的輸出可以定位某個進程的所有線程的當前運行狀態、運行代碼,以及是否死鎖等等粗寬。
4. pstack:Linux命令。可以查看某個進程的當前線程棧運行情況
分析內存性能的方法和技巧:
1.top命令:可以查看實時的內存使用情況。
2.jmap -histo:live [pid],然後分析具體的對象源仿數目和佔用內存大小,從而定位代碼。
jmap -mp:live,format=b,file=xxx.xxx [pid],然後利用MAT工具分析是否存在內存泄漏等等。
㈡ linux jmap如何使用
jmap命令可以獲得運行中的jvm的堆的快照,從而可以離線分析堆,以檢查內存泄漏,檢查一些嚴重影響性能的大對象的創建,檢查虛畢系統中什麼對象最多,各種對象所佔內存的大小。
命令格式:
jmap[options]pid
-mp:[live,]format=b,file=<filename>
--mp堆到文件,live指明是活著的對象,file指定文件名
-F強制,在jmap-mp或jmap-histo中使用,如果pid沒有相應的回復
-J提供jvm選項,如:-J-Xms256m
㈢ Linux下如何定位JAVA進程直接內存的泄漏及top和jmap查看內存的關系
問題1:top的RES值和JAVA堆內存之間到底是一個什麼關系?
——大概1、2個月有個帖子討論過,挺長的,不過一下子找不到了;總的來說,兩者很難找到非常精確匹配的計算關系,因為兩者統計的口徑是不同的;操作系統關心的是被應用程序所佔用的,而JVM則只是關心堆中被分配出去的;這裡面有JVM自己開銷的、有碎片內存無法使用的、還有已使用完畢待回收的 等等問題。
——總的來說,我覺得如果不是為了底層開發之類的問題,不值得在此問題進行深入研究。
問題2:橋賣如何定位JAVA進程直接內存的泄檔答漏?
——很遺憾,並沒有什麼招數來直接定位,否則內存泄露就不會是一個讓大家聞風喪膽的問題了;各類工具都只行消慧是提供給你一定的手段去發現徵兆、縮小懷疑范圍,沒有說直接幫你定位,那聽起來就不是IT而是神話了。
——常規招數就是:范圍 與 層次,兩個方向不斷通過測試和監控來縮小 懷疑范圍,從而最終定位內存泄漏點。
㈣ 幾種常見的操作tomcat的linux命令
重啟tomcat
ps x 查看pid
kill -9 pid 殺死進程
/app/tomcat/bin/startup.sh 啟動tomcat
追蹤日誌
tail -f /app/tomcat/log/*.log
配置文件
vi /app/tomcat/webapp/root/WEB-INF/server.properties 查看伺服器配置
vi /app/tomcat/webapp/root/WEB-INF/web.xml 查看後端文件位置
vi /app/tomcat/webapp/root/WEB-INF/common-applicationcontext.xml 查看資料庫
查看內存溢出
top 查看系統性能
jmap -heap pid 列印heap的概要信息
jmap -histo pid 列印每個class的實例數目,內存佔用,類全名信息
jmap -mp:format=b,file=heap.bin pid 輸出heap信息到heap.bin文件
jhat -J-mx768m heap.bin 分析heap.bin文件
最好使用eclipse的MAT查看heap.bin,相比jhat等更加直觀,容易發現內存溢出
查看死鎖
jstack -l pid > deadlock.jstack 輸出stack信息到deadlock.jstack
vi deadlock.jstack 使用vi查看
資料庫導出
/usr/local/mysql/bin/mysqlmp -u root -p test > test_new.sql
資料庫導入
/usr/local/mysql/bin/mysql -u root -p test < test_new.sql
選擇性查看日誌
grep * /app/tomcat/log/*.log|cut -d '#' -f 8-9|sort -t '#' -u
㈤ linux下java mp文件在哪兒
如果所使用的應用伺服器是tomact,mp文件默認在catalina.out日誌文件里;
如果不是則可以查看java環境變數設置的位置,也就知道在mp文件的位置了;
如果沒有生成mp文件或者是生成錯誤,請按照一下幾種方法來修復:
系統默認的core文件生成路徑是 /var/logs,但是 /var/logs 目錄並非系統自帶的,系統初始安裝默認自帶的是/var/log,最終導致該系統出現core mp後並沒能生成core文件,因此如何查詢和修改系統默認的core mp文件生產路徑呢?方法如下:
一. 查詢core mp文件路徑:
方法1:
# cat /proc/sys/kernel/core_pattern
方法2:
# /sbin/sysctl kernel.core_pattern
二. 修改core mp文件路徑:
方法1:臨時修改:修改/proc/sys/kernel/core_pattern文件,但/proc目錄本身是動態載入的,每次系統重啟都會重新載入,因此這種方法只能作為臨時修改。
/proc/sys/kernel/core_pattern
例:echo 『/var/log/%e.core.%p』 > /proc/sys/kernel/core_pattern
方法2:永久修改:使用sysctl -w name=value命令。
例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p
㈥ 面試常問的 25+ 個 Linux 命令
本文並不會對所有命令進行詳細講解,只給出常見用法和解釋。具體用法可以使用 --help 查看幫助或者直接通過google搜索學習。
find / -name filename.txt 根據名稱查找/目錄下的filename.txt文件。
find . -name "*.xml" 遞歸查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 遞歸查找所有文件內容中包含hello world的xml文件
grep -H 'spring' *.xml 查找所以有的包含spring的xml文件
find ./ -size 0 | xargs rm -f & 刪除文件大小為零的文件
ls -l | grep '.jar' 查找當前目錄中的所有jar文件
grep 'test' d* 顯示所有以d開頭的文件中包含test的行。
grep 'test' aa bb cc 顯示在aa,bb,cc文件中匹配test的行。
grep '[a-z]{5}' aa 顯示所有包含每個字元串至少有5個連續小寫字元的字元串的行。
ps -ef|grep tomcat 查看所有有關tomcat的進程
kill -9 19979 終止線程號位19979的進程
ls -al
pwd
cp source dest 復制文件
cp -r sourceFolder targetFolder 遞歸復制整個文件夾
scp sourecFile romoteUserName@remoteIp:remoteAddr 遠程拷貝
mkdir newfolder
rmdir deleteEmptyFolder 刪除空目錄
rm -rf deleteFile 遞歸刪除目錄中所有內容
mv /temp/movefile /targetFolder
mv oldNameFile newNameFile
su -username
chmod 777 file.java file.java 的許可權 -rwxrwxrwx ,r表示讀、w表示寫、x表示可執行
tar -czf test.tar.gz /test1 /test2
tar -tzf test.tar.gz
tar -xvzf test.tar.gz
head -n 10 example.txt
tail -n 10 example.txt
tail -f exmaple.log 這個命令會自動顯示新增內容,屏幕只顯示10行內容的(可設置)。
sudo rm a.txt 使用管理員身份刪除文件
netstat -tln | grep 8080 查看埠8080的使用情況
lsof -i :8080
ps aux|grep java 查看java進程
ps aux 查看所有進程
tree a
wget http://file.tgz
curl http://file.tgz
ping www.just-ping.com
ssh userName@ip
echo $JAVA_HOME 列印java home環境變數的值
java javac jps ,jstat ,jmap, jstack
svn git maven
歡迎補充!~
㈦ linux怎麼查看jvm正在使用的哪個垃圾回收器
搜一檔胡下jps和團蠢陵jmap命塌戚令,是JDK提供的,jps能顯示出jvm的進程號,然後用jmap顯示jvm的配置和信息
㈧ jmap-各種option參數說明
jmap(JVM Memory Map):作用一帶滑方面是獲取mp文件(堆轉儲快照文件,二進制文件),它還可以獲取目標Java進程的內存相關信息,包括Java堆各區域的使用情況、堆中對象的統計信蠢明臘息、類載入信息等。
開發人員可以在控制台輸入命令"jmap -help"查閱jmap工具的具體使用方式和一些標准選項配置。
它的基本使用語法為:
其中option包括:
說明:這些參數和linux下輸入顯示的命令多少會有不同,包槐告括也受jdk版本的影響。