io、free、ps 命令

io、free、ps 命令

1、監控 io 性能

這個 iostat 命令,在安裝 sar 命令的時候,就一起安裝了,所以不用重新安裝。具體用法見下圖,
io、free、ps 命令
iostat 命令和 vmstat 挺像的,輸入 iostat 可以直接查看磁盤顯示情況,輸入 iostat 1 就是每隔1秒顯示一次,是動態命令,使用 ctrl + c 結束命令。sda 和 sdb 表示磁盤,第3 列和第4 列表示讀和寫的速度。這個命令沒什麼用處,因爲命令 sar -b 也可以看出這些信息。
io、free、ps 命令
接着往下介紹命令 iostat -x 1,見下圖,
io、free、ps 命令
這個命令有一個非常重要的指標 %util ,表示 io 等待,在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閒置,那麼該設備的%util = 0.8/1 = 80%,所以該參數暗示了設備的繁忙程度。一般地,如果該參數是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因爲磁盤的併發能力,所以磁盤使用未必就到了瓶頸)。
還有一個命令 iotop ,需要安裝,見下圖,
io、free、ps 命令
io、free、ps 命令
iotop 命令和 top 命令很像,也是動態顯示,輸入命令 iotop ,回車,見下圖,
io、free、ps 命令
可以看到排序,但是 io 沒有什麼讀寫信息,也就沒有什麼排序。按字母 q 退出。

2、free 命令

直接查看內存使用狀況。輸入 free ,回車,見下圖,
io、free、ps 命令
可以看到當前系統的總內存大小以及使用內存的情況,單純的 free 命令單位是 KB ,-m 選項的單位是 M ,-g 選項的單位是 G,-h 選項是智能的顯示單位。其中,第2行是內存使用情況,第3行是 swap的使用情況。我們關注的是第2行的數據,從上例中可看到當前系統內存總大小爲999936 KB,已經使用118532 KB,剩餘578680 KB,共享6832 KB。 系統初始化時,就已經分配出很大一部分內存給緩存(buff/cache),這部分緩存用來隨時提供給程序使用,如果程序不用,那這部分內存就空閒。CPU 和磁盤之間,需要通過內存來緩存。從磁盤到CPU之間的內存叫 cache ,從CPU到磁盤之間的內存叫 buffer。
公式:total=used+free+buff/cache。
avaliable包含free和buffer/cache剩餘部分。

3、ps 命令

io、free、ps 命令

作爲系統管理員,一定要知道你所管理的系統都有那些進程在運行,在windows下只要打開任務管理器即可查看。在linux下呢?其實在上面介紹的top命令就可以,但是不容易看,還有專門顯示系統進程的命令 ps ,靜態顯示出來進程情況。
先輸入命令 man ps ,回車,來查看一下 ps 的功能,見下圖,
io、free、ps 命令
可以看到 ps 的作用是報告當前流程的快照。
接着來看一下 ps 的用法,見下圖,
io、free、ps 命令
io、free、ps 命令
io、free、ps 命令
ps aux 命令顯示當前系統的所有進程,它經常會連同管道符一起使用,用來查看某個進程或者它的數量,見下圖,
io、free、ps 命令
ps 還有一種用法,見下圖,
io、free、ps 命令
-elf 的用法和 aux 大同小異,顯示的信息基本上是一樣的,不一一截圖了。這兩種方法就是看個人喜好。
接着介紹 ps aux 命令結果裏面幾個參數的意義:
USER:進程的運行用戶
PID :進程的id,這個id很有用,在linux中內核管理進程就得靠pid來識別和管理某一個程序,比如我想終止某一個進程,則用 kill 進程的pid 有時並不能殺掉,則需要加一個-9選項了 kill -9 進程pid
現在假設 PID 爲509的進程是非法進程,先查看一下進程的目錄,看看進程是從哪邊啓動起來的,就是下圖紅色框框綠色字體的內容。
io、free、ps 命令
%CPU CPU百分比
%MEM 內存百分比
VSZ 虛擬內存
RSS 物理內存
START 什麼時候啓動
TIME 運行多久
COMMAND 命令
STAT :表示進程的狀態,進程狀態分爲以下幾種(不要求記住,但要了解)
D 不能中斷的進程(通常爲IO)
R 正在運行中的進程
S (大寫的S)已經中斷的進程,通常情況下,系統中大部分進程都是這個狀態
T 已經停止或者暫停的進程,如果我們正在運行一個命令,比如說 vmstat 1 ,如果我們按一下 ctrl + z 讓他暫停,那麼我們用ps查看就會顯示T這個狀態,見下圖,
io、free、ps 命令
W 這個好像是說,從內核2.6xx 以後,表示爲沒有足夠的內存頁分配
X 已經死掉的進程(這個好像從來不會出現)
Z 殭屍進程,殺不掉,打不死的垃圾進程,佔系統一小點資源,不過沒有關係。如果太多,就有問題了。一般不會出現。
< 高優先級進程,CPU先給這些進程用
N 低優先級進程
L 在內存中被鎖了內存分頁(還沒見過,瞭解即可)
s (小寫的s)主進程,一般顯示爲 Ss 爲主進程,S 爲子進程。
l 多線程進程,意思就是這個進程有多個線程。這邊線程和進程,可以查查資料
io、free、ps 命令
io、free、ps 命令
io、free、ps 命令
io、free、ps 命令
io、free、ps 命令

  • 代表在前臺運行的進程
    這個ps命令是在工作中用的非常多的命令之一。

總結:
iostat -x %util表示在統計時間內所有處理IO時間,除以總共統計時間
iostat 顯示當前磁盤使用情況
iostat 1 每隔1秒顯示一次磁盤使用情況,是動態命令,使用 ctrl + c 結束命令
iotop 磁盤使用情況,按 io 排序
free 可以看到當前系統的總內存大小以及使用內存的情況,-m 單位M,-g單位G,-h智能顯示單位
ps aux 靜態的顯示當前系統的所有進程,經常與 | 一起使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章