在網站 性能優化 中,我們經常要檢查服務器的各種指標,以便快速找到害群之馬。大多情況下,我們會使用cacti、 nagois 或者zabbix之類的監控軟件,但是這類軟件安裝起來比較麻煩,在一個小型服務器,我們想盡快找到問題所在,還是要使用Linux提供的一些命令。
1. 內存檢查:free -m
注意,重點看的是第二行,-/+ buffers/cache行,第一個數字是實際消耗的內存,第二個是實際空閒的內存。
2. 系統進程監控 top
Top命令注意看輸出的第二、第三行。第二行(Tasks)表示系統運行的進程數,這個數值一般不能太大,比如超過300、甚至400-500,這個比較容易理解,我們一般開啟的服務、進程外加系統進程都不會太多,太多肯定有問題。第三行表示CPU的使用情況。
Top可以按 M按內存使用排序,P按CPU使用情況排序。
3. 進程監控加強版 htop
htop 提供了比top更強大的功能,推薦安裝。能排序、查找、顯示進程樹等功能。
htop 還有一個強大的功能的,就是strace,按s可以直接對選中進程進行strace。
strace效果圖如下:
4. 找出害群之馬 (ps命令)
如果通過top、 htop 、free以及 iostat 、vmstat(後面會講)對系統分析後,我們接下來就要找系統的問題進程了。在top、 htop 中 我們一般可以直觀的看出到底是那個進程出問題了,不過有時這兩個命令不能完全確定,我們還要使用ps確認系統中的最差進程。
自定義輸出格式 -o 可以定義我們想要顯示的列,列名基本和輸出的表頭一樣,只是要小寫,如下:
ps -A -o %mem, %cpu
找到實例運行過多的進程(服務器監測特別有用)