統計內存最高的進程:
ps aux | grep -v PID | sort -rn -k 4 | head
統計CPU使用率最高的進程:
ps aux | grep -v PID | sort -rn -k 3 | head
僵屍進程:
ps aux | grep defunct | grep -v grep
查找進程啟動的線程:
ps -eLf PID
查看網絡服務狀態:
netstat -ntlp --顯示正在listening的tcp的數字格式的連接
netstat -nulp --顯示正在listening的udp的數字格式的連接
硬件故障分析:
1.檢查磁盤使用量:服務器硬盤是否已滿。
2.是否開啟了swap交換模式(si/so)。
3.CPU使用情況:占用高CPU時間片的是系統進程還是用戶進程。
查看CPU和內存信息:
free -m

Mem為物理內存的容量。
Swap為虛擬內存的容量。
total為總容量。
used為已用容量。
free為空閑容量。
shared為共享容量。
buff/cache為緩沖及緩存的容量。
avaiable為真正可用容量。
一般swap used的值最好不要超過20%。
top --CPU和內存使用實際統計

mpstat 2 10 --查看每個CPU的使用統計。

總線設備信息統計:
lspci --顯示系統中所有PCI總線設備或連接到該總線的所有設備

使用dmidcode命令查看bios、system、memory、processor等硬件設備的信息
例:dmidecode -t Memory | grep "Maximum Capacity"
查看網卡信息:
ethtool 網卡名

ethtool -i ens33

I/O性能統計
iostat -kx 2

vmstat 2 10

swpd:切換到交換內存上的內存容量(默認以KB為單位),正常情況下swpd的值為0。如果swpd的值比較大,如果查過100M,但是si和so的值長期為0,則這種情況不會影響性能。
free:空閑的物理內存容量。如果free的值很小,但是si和so的值也很小,則系統性能不會受到影響。
buff:做為buffer cache(緩沖區緩存)的內存,對塊設備的讀寫進行緩沖。
cache:做為page cache(頁面緩存)的內存,文件系統的緩存,如果緩存值大,則說明緩存的文件數多,如果頻繁訪問到的文件都能被緩存,name磁盤的讀io bi(發送到塊設備的塊數)會非常小。
si:交換內存使用,由磁盤調入內存。
so:交換內存使用,有內存調入磁盤。
提示:內存夠用時,si和so的值都是0,;如果這兩個值長期大於0,那么系統性能就會收到影響,磁盤、I/O和CPU資源都會被消耗完。
bi:從塊設備讀入的數據量(讀磁盤),單位為KB/s。
bo:寫入到塊設備的數據總量(寫磁盤),單位為KB/s。
提示:隨機磁盤讀寫的時候,這2個值越大(如超出1M),能看到CPU在I/O等待的值也會越大。
in:每秒產生的終端次數。
cs:每秒產生的上下文切換次數。
提示:in和cs的值越大,有內核消耗的CPU時間會越多。
us:用戶進程消耗的CPU時間百分比。如果us的值比較高,則說明用戶進程消耗的CPU時間多。但是如果長期超過50%,那么就考慮優化程序算法或者進行加速。
sy:內核進程所消耗的CPU時間百分比。如果sy的值比較高,說明系統內核消耗的CPU資源多,這並不是良性的表現,應該檢查原因。
id:CPU處於空閑狀態時間的百分比。
wa:I/O等待消耗的CPU時間百分比。如果wa的值比較高,則說明I/O等待比較嚴重,這可能是磁盤大量做隨機訪問造成的,也有可能是磁盤的帶寬出現瓶頸,如快操作等。
查看當前占用I/O資源最高的進程信息,如下圖所示:
dstat --top-bio --top-io

磁盤使用率統計:
df -h --查看磁盤容量使用情況(檢查刪除文件后磁盤空間有未釋放)
fdisk -l --查看磁盤分區信息

磁盤I/O相關參考:https://www.cnblogs.com/hanson1/p/7102206.html
lsof命令可以列出當前系統打開的文件及目錄,其中提供了大量關於這個應用程序本身和操作系統交互的信息。+D參數可以列出對應目錄下的所有子目錄和文件。

操作系統日志:
查看整體系統日志:/var/log/messages
查看授權和認證信息:/var/log/secure
以上兩個日志中需關注:
1)錯誤和告警信息,是否因為連接數過多所導致的;
2)是否有硬件錯誤或文件系統錯誤。
中斷異常信息:
/proc/interrupts中中斷請求是否均衡分配給了CPU處理,CPU是否會由於大量網絡中斷請求或RAID請求而過載。
內核信息查詢:
dmesg | more
