linux定位應用問題的一些經常使用命令,特別針對內存和線程分析的dump命令

下面這些命令都是以前遇到內存佔用持續升高,cpu持續居高不下或者大幅度震盪下收集信息的方法,其中dump線程信息切記要至少dump3次linux

1.jps找出進程號,找到對應的進程號後面纔好繼續操做spa

2.linux查看進程詳細信息線程

    ps -ef | grep 進程ID  日誌

3. dump內存信息orm

    Jmap -dump:format=b,file=YYMMddhhmm.dump pid 進程

4.top查看cpu佔用信息內存

    PID:進程的IDform

    USER:進程全部者thread

    PR:進程的優先級別,越小越優先被執行變量

    NInice:值

    VIRT:進程佔用的虛擬內存

    RES:進程佔用的物理內存

    SHR:進程使用的共享內存

    S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數

    %CPU:進程佔用CPU的使用率

    %MEM:進程使用的物理內存和總內存的百分比

    TIME+:該進程啓動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。

    COMMAND:進程啓動命令名稱

5.定位進程中哪一個cpu高

    ps p 14766 -L -o pcpu,pid,tid,time,tname,stat,psr | sort -n -k1 –r

6.打印線程信息

     jstack 1822 > /opt/thread_dump

7.ps –f查看進程信息

9.su切換用戶權限

    su 切換用戶,當su的話,好比說。你當前用戶爲aaa

    你直接su root 你能夠認真看下,只是用戶變成root。你當前的操做環境仍是在aaa的用戶下

    若是加個su - root,就等於你的操做環境跟用戶都變成root了!

    你再找找,linux的環境變量$PATH 就知道了!

10.[ -z STRING ] 「STRING」 的長度爲零則爲真

11.執行sh無權限執行,未被識別的服務

    可能你沒有爲xsetup文件加上可執行權限,想知道有沒有可執行權限方法以下:

    1.先su到root。

    2.在你安裝的目錄下輸入命令:「ls -l xsetup」(這是查看文件的詳細信息)

    3.你能夠看到有一項相似:「-wr--r-wr-」之類的,若是這項裏面的看不到有x的,只有w,r的話,證實沒有可執行權限

    4.加上可執行權限, 輸入命令:「chmod 777 xsetup」

12.find ./ -type f -name "*.log" | xargs grep "xxx"查詢日誌

相關文章
相關標籤/搜索