命令–常用命令(整理)(系統分析)

(pmap -x 1437:查看mysql進程1437的信息,獲取用戶進程的邏輯地址空間中映射的內存信息)
(cat /proc/vmallocinfo | grep -v “ioremap” | awk ‘{print $2}’ | paste -s -d “+” | bc:統計VmallocUsed中除ioremap外的物理內存使用量)
(echo “(” $(cat  /proc/vmallocinfo | grep -v “ioremap” | awk ‘{print $2}’ | paste -s -d “+”) “)  /  1024” | bc:除以1024的結果)
(cat /proc/slabinfo:查看slab的信息)
(cat /proc/vmallocinfo:VmallocUsed包含的內存區域)
(ps -f –ppid 2 -p 2:查找 kthreadd 的子進程,2 號進程為 kthreadd 進程,在內核態運行,用來管理內核線程)
(ps -ef | grep “\[.*\]”:查找名稱包含中括號的進程)
(ps -ef | grep test | grep -v grep | awk ‘{print $2}’ | xargs kill -9 :批量殺掉進程)
(ps -ef | grep test | grep -v grep | awk ‘{print “kill -9 “$2}’:批量殺掉進程)
(ps -A -o stat,ppid,pid,cmd | grep -e ‘^[Zz]’ | awk ‘{print $2}’ | xargs kill -9:批量殺掉殭屍進程)
(ps -A -o stat,ppid,pid,cmd | grep -e ‘^[Zz]’:查找殭屍進程) 
(ps -ef | grep defunct:查看殭屍進程)
(ps -ef|grep mysql:查詢PID號)
(ps aux | grep softirq:查看線程的運行狀況)
(ps -C nginx –no-header |wc -l:統計nginx有幾個線程,–no-header代表不顯示第一行標題)
(ps  -aux  -lax)
(ps -ef | grep ‘svn’)
(ps  :靜態顯示進程)
(ps -eLf  | grep mysql |wc -l :監控mysql使用了多少進程)
(ps -U root -u root -N:查看非系統進程)
(ps -ef |grep crond|grep -v grep |awk ‘{print $2}’:取出crond的進程號:9737)
(ps -ejH:列出進程樹)
(ps -axjf:列出進程樹)
(ps -eLf:獲得線程信息)
(ps axms:獲得線程信息)
(ps -eo euser,ruser,suser,fuser,f,comm,label:獲得安全信息)
(ps axZ:獲得安全信息)
(ps -eM:獲得安全信息)
(ps -efT | grep 514:根據線程號514,查出它屬於哪個進程)
(pstree -p:列出每個程序pid)
(pstree -u:列出每個賬號名稱)
(mpstat -P ALL  和  sar -P ALL)
(mpstat -P ALL 1:多核cpu查看)
(mpstat  1 10 :查看cpu資源)
(mpstat  -P  0 1 :查看0號cpu使用情況,)
(mpstat  -P  1 1 :查看1號cpu使用情況,)
(mpstat  -P ALL 5 1:顯示所有 CPU 的指標,並在間隔 5 秒輸出一組數據,-P ALL 表示監控所有 CPU)
(pidstat -p 97203:查看cpu使用情況)
(pidstat -u 5 1:間隔 5 秒後輸出一組數據,-u 表示 CPU 指標)
(pidstat -w 5:每隔 5 秒輸出 1 組數據,查看每個進程的使用情況)
(pidstat -w -u 1: -w 參數表示輸出進程切換指標,而 -u 參數則表示輸出 CPU 使用指標)
(pidstat -wt 1:-wt 參數表示輸出線程的上下文切換指標)
(pidstat -d -p 4344 1 3: -d 展示 I/O 統計數據,-p 指定進程號,間隔 1 秒輸出 3 組數據)
(pidstat -d -p 4327 1 3:根據top查出來導致io升高並且顯示是D狀態的進程號是4327,所以這裡用4327這個進程號分析)
(pidstat -d 1 20:查看所有進程的I/O使用情況)
(pidstat -d 1 :使用 pidstat 加上 -d 參數,就可以顯示每個進程的 I/O 情況)
(pidstat -wut -p 1997 1:指定進程號為1997,顯示上下文切換及cpu使用率情況)
(pidstat  -t :開啟線程選項)
(pidstat中cswch:表示每秒自願上下文切換(voluntary context switches)的次數)
(pidstat中nvcswch:表示每秒非自願上下文切換(non voluntary  context switches)的次數。)
(pidstat -wut -p XX 1:檢測是哪個線程佔用了cpu)
(perf  top -p 5801:指定進程號)
(perf  top:實時顯示佔用 CPU 時鐘最多的函數或者指令)
(perf  record -g:記錄佔用 CPU 時鐘最多的函數或者指令,當前目錄生成perf.data文件)
(perf  report :調用perf.data文件,輸出顯示信息)
(perf  report -g -p 1997:指定進程號為1997的應用程序,輸出perf.data文件信息)
(watch -d cat /proc/softirqs:watch定期執行某個命令來分析)
(watch -d cat /proc/softirqs: -d 參數,可以高亮顯示出軟中斷變化部分)
(watch -d cat /proc/interrupts:系統中斷查看,-d 參數表示高亮顯示變化的區域)
(watch -d cat /proc/interrupts: TIMER(定時中斷)、NET_RX(網絡接收)、SCHED(內核調度)、RCU(RCU 鎖)不停變化。)
(watch -d uptime:查看系統平均負載變化)
(watch -d cat /proc/stat:查看cpu狀態信息)
(sar -n DEV 1:-n DEV 表示顯示網絡收發的報告,間隔 1 秒輸出一組數據)
(sar -q 1 5:查看總cpu負載 )
(sar  -P  ALL  1:查看每個cpu負載)
(sar -b 1 10:查看當前磁盤IO 讀寫)
(uptime:查看cpu負載,及系統運行總時長)
(vmstat -w -a:查看分別有多少內存被認為是活動和非活動狀態)
(vmstat -w 1 10:系統負載狀態)
(vmstat -w  -n 1 5:查看io、及cpu使用)
(vmstat -w 1)
(dstat 1 10: 間隔 1 秒輸出 10 組數據,查看 CPU 和 I/O 的使用情況)
(dstat –output /tmp/sampleoutput.csv -cdn:輸出到sampleoutput.csv 文件裏面)
(dstat -g -l -m -s –top-mem :顯示內存誰在佔用)
(dstat -c -y -l –proc-count –top-cpu:CPU資源損耗的數據)
(dstat –list:列出可用參數)
(dstat  -pidsta:查看系統信息)
(dstat  -vmsta:查看系統信息)
(dstat  -iosta:查看系統信息)
(dstat  -mpsta:查看系統信息)
(dstat –aio –io –disk –tcp –top-io-adv –top-bio-adv  –top-bio-adv:查看系統性能,可以看出是哪個進程佔用高)
(dstat -tcndylp  –top-cpu:相當於–time –cpu –net –disk –sys –load –proc –top-cpu)
(dstat –aio –io –disk –tcp –top-io-adv –top-bio-adv  –top-mem)
(dstat –io –aio –disk –top-io-adv  –top-bio-adv –top-mem 1 5)
(dstat -cmdlnsyp:基本查看)
(dstat -f 1  5:查看每個磁盤分區情況)
(dstat -o 1 5:查看cpu磁盤網絡情況)
(dstat -v 1 5:查看內存cpu磁盤情況)
(dstat -acdfgilmnoprstvy :所有可以執行的參數)
(dstat -tcyif:查看所有信息)
(atop -dl:查看性能)
(iostat 1 10:系統io狀態,tps:硬盤每秒傳輸速度)
(iostat -b:顯示每秒MB讀寫)
(iostat -d -x 1 :-x 表示顯示所有磁盤 I/O 的指標,-d不顯示設備利用率)
(iostat   -x -p ALL:顯示每個設備的io情況,並顯示設備利用率,加上-d,不顯示設備利用率)
(sysstat:工具安裝:yum install sysstat)
(pmap -d 14596:進程佔用的內存情況,數字是PID號)
(top -H -p 1997:指定進程號為1997,查看線程信息)
(top -c:動態顯示進程,顯示完整執行路徑,不只是顯示命令)
(dmesg | grep -i “Out of memory”:查詢 OOM 日誌,dmesg 中看到 Out of memory 的信息,從而知道是哪些進程被OOM 殺死了。)
(註:dmesg結果輸出:lowmem_reserve,代表申請內存。)
(cat /proc/stat | grep ^cpu:只保留各個CPU的數據)
(grep ‘CONFIG_HZ=’ /boot/config-$(uname -r):查看內核的節拍率 HZ )
(grep Pss /proc/[1-9]*/smaps | awk ‘{total+=$2}; END {printf “%d kB\n”, total }’:統計所有進程的物理內存使用量)
(grep ‘CONFIG_HZ=’ /boot/config-$(uname -r):查看系統節拍率,也就是每秒鐘觸發多少次時間中斷)
(grep  -R  “字符串”   /目錄:遍歷目錄裏面的文件,查找裏面的字符串。)
(grep -c是行數,–n行號 ,–i忽略大小寫)
(smem|awk ‘{total+=$6};END{printf “%d kb/n”,total}’;echo:統計所有進程的物理內存使用量,$6是計算pss,$7是計算rss)
(getconf PAGESIZE:查看共享內存頁大小)
(strace -c find /tools/monitor -name sleep_count.py:在執行一個命令時,每個系統調用在內核中所用的時間)
(strace -p PID   -f:加上f參數,多進程和多線程都可以跟蹤)
(strace -p 3387 -f 2>&1 | grep write :追蹤子線程)
(strace -cfp $(pidof mysqld):計算系統調用的時間)
(lsof -i -U:分析核心內存和各種文件)
(lsof -nP | grep ‘(deleted)’:查找被刪除文件的信息)
(lsof -c mysqld:顯示進程信息)
((lsof -c mysqld  | grep  deleted:顯示進程信息))
(lsof -p 9737:查看9737這個進程號,打開的所有文件)
(lsof  -i:1194)
(lsof -i :22:查看22端口上的所有進程)
(lsof  | grep delete:查看已刪除空間卻沒有釋放的進程 )
(lsof -w | grep deleted:查看所有被刪掉並緩存的進程,-w 是指忽略這些錯誤)
(top -c:顯示系統運行的進程信息,輸入大寫P,進程便按照使用率排序)
(top -Hp 5986:顯示該進程的線程運行信息列表,繼續輸入大寫P使其按照CPU使用率排序)
(top -b -n1 | head:top命令,只顯示1次)