瓶颈分析
Top指令:?CPU/內存情況
top # top指令可以顯示總體CPU占用率、內存使用率和交換情況,以及所有進程對應的CPU、內存占用情況終端下使用該指令示例結果:
?
上圖對一些重要的參數(shù)進行了簡單標識,筆者這里使用的是XShell對遠程Linux服務器進行連接和管理。
可以看到,在?top?指令返回的結果中,CPU和內存的占用信息都十分詳細:
IOStat指令:?磁盤情況
iostat -d -k 2 # iostat主要用來顯示磁盤IO情況,這里-d、-k、2是三個常加的參數(shù): # -d 表示顯示設備(磁盤)使用狀態(tài) # -k 某些使用block為單位的列強制使用Kilobytes為單位 # 2 表示數(shù)據(jù)顯示每隔2秒刷新一次。可以使用Ctrl+C來終止輸出終端下使用該指令示例結果:
如上圖,命令執(zhí)行后每兩秒鐘會向終端輸出一次當前的I/O狀況。這些數(shù)據(jù)的具體含義是:
tps:該設備每秒的I/O請求次數(shù),即頻率; kB_read/s:每秒從設備讀取的數(shù)據(jù)量; kB_wrtn/s:每秒向設備寫入的數(shù)據(jù)量; kB_read:讀取的總數(shù)據(jù)量; kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;更高級的用法:
iostat -d -x -k 1 10 # 這里添加了幾個參數(shù) -x 與 1 后面的 10 # -x 表示顯示和io相關的擴展數(shù)據(jù) # 1 10 1 表示每1秒刷新一次,1 后跟 10 表示一共輸出10次數(shù)據(jù) avgrq-sz:平均請求扇區(qū)的大小 avgqu-sz:是平均請求隊列的長度。毫無疑問,隊列長度越短越好。 await: 每一個IO請求的處理的平均時間(單位是微秒毫秒)。這里可以理解為IO的響應時間,一般地系統(tǒng)IO響應時間應該低于5ms,如果大于10ms就比較大了。這個時間包括了隊列時間和服務時間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊列時間越短,反之差值越大,隊列時間越長,說明系統(tǒng)出了問題。 svctm:表示平均每次設備I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統(tǒng)上運行的應用程序將變慢。 %util: 在統(tǒng)計時間內所有處理IO時間,除以總共統(tǒng)計時間。例如,如果統(tǒng)計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閑置,那么該設備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設備的繁忙程度。一般地,如果該參數(shù)是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因為磁盤的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。?
轉載于:https://www.cnblogs.com/nr-zhang/p/10472021.html
總結
- 上一篇: Android笔记-Activity相关
- 下一篇: [转帖]Docker 清理占用的磁盘空间