Linux服務器下CPU過高


在服務器報cpu過高時,可使用以下命令,快速導出堆棧信息,以方便查看具體的問題。

使用top命令定位異常進程。可以看見12836的CPU和內存占用率都非常高

此時可以再執行ps -ef | grep java,查看所有的java進程,在結果中找到進程號為12836的進程,即可查看是哪個應用占用的該進程。

使用top -H -p 進程號查看異常線程

使用printf "%x\n" 線程號將異常線程號轉化為16進制

使用jstack 進程號|grep 16進制異常線程號 -A90來定位異常代碼的位置(最后的-A90是日志行數,也可以輸出為文本文件或使用其他數字)。可以看到異常代碼的位置。

查看java安裝路徑

whereis java
which java (java執行路徑)
echo $JAVA_HOME

echo $PATH

 

linux搜索文件名稱

//.點為查找當前目錄 下 的 所有 *.php 文件里 有 hello 的文件
find . -name "*.php" | xargs grep "hello"

//根目錄
find / -name "*.php" | xargs grep "hello"

注意事項:

如果提示 -bash: jstack: command not found,則可以找到jdk的目錄,進入bin目錄,

        在執行 ./jstack 進程號 | grep 16進制異常線程號 -A90 即可。

   
如果提示 well-known file is not secure,則是因為賬號權限的問題。在/tmp/hsperfdata_$USER/目錄,有一個以進程號命名的文件,當我們執行jmap或者jstack出現上敘信息時,先檢查執行該命令的用戶是否和hsperfdata_$USER這個文件所屬的用戶一致,如果不一致,切換至成一致再執行。執行:sudo -u 有權限的賬號 ./jstack 進程號 | grep 16進制異常線程號 -A50 即可。

參考文獻

https://blog.csdn.net/chenjunan888/article/details/80447800

 

linux如何修改文件夾所屬用戶名和用戶組

格式:chown 賬號名稱 文件或目錄

實例:chown www vpsss

增加權限給當前用戶 chmod +wx filename

chmod -R 777 /upload

用戶組 chgrp -R foldname zdz

chown -R 所有者用戶名.組名 文件夾名稱
例如:chown -R zdz.nginx KooBox


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM