- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
下面這些命令的輸出,有助于快速定位性能瓶頸,檢查出所有資源(CPU、內存、磁盤(pán)IO等)的利用率(utilization)、飽和度(saturation)和錯誤(error)度量,也就是所謂的USE方法。
1.uptime
這個(gè)命令可以快速查看機器的負載情況。在Linux系統中,這些數據表示等待CPU資源的進(jìn)程和阻塞在不可中斷IO進(jìn)程(進(jìn)程狀態(tài)為D)的數量。這些數據可以讓我們對系統資源使用有一個(gè)宏觀(guān)的了解。
命令的輸出分別表示1分鐘、5分鐘、15分鐘的平均負載情況。通過(guò)這三個(gè)數據,可以了解服務(wù)器負載是在趨于緊張還是區域緩解。如果1分鐘平均負載很高,而15分鐘平均負載很低,說(shuō)明服務(wù)器正在命令高負載情況,需要進(jìn)一步排查CPU資源都消耗在了哪里。反之,如果15分鐘平均負載很高,1分鐘平均負載較低,則有可能是CPU資源緊張時(shí)刻已經(jīng)過(guò)去。
如果近1分鐘的平均負載遠高于15分鐘的負載情況,那么我們需要用vmstat,mpstat命令進(jìn)行排查
2.dmesg | tail
dmesg這條命令用于查看開(kāi)機信息
dmesg | tail 該命令會(huì )輸出系統日志的最后10行
3.vmstat 1
每行會(huì )輸出一些系統核心指標,這些指標可以讓我們更詳細的了解系統狀態(tài)。后面跟的參數2,表示每?jì)擅胼敵鲆淮谓y計信息,表頭提示了每一列的含義,這幾介紹一些和性能調優(yōu)相關(guān)的列:
r:等待在CPU資源的進(jìn)程數。這個(gè)數據比平均負載更加能夠體現CPU負載情況,數據中不包含等待IO的進(jìn)程。如果這個(gè)數值大于機器CPU核數,那么機器的CPU資源已經(jīng)飽和。
free:系統可用內存數(以千字節為單位),如果剩余內存不足,也會(huì )導致系統性能問(wèn)題。下文介紹到的free命令,可以更詳細的了解系統內存的使用情況。
si, so:交換區寫(xiě)入和讀取的數量。如果這個(gè)數據不為0,說(shuō)明系統已經(jīng)在使用交換區(swap),機器物理內存已經(jīng)不足。
us, sy, id, wa, st:這些都代表了CPU時(shí)間的消耗,它們分別表示用戶(hù)時(shí)間(user)、系統(內核)時(shí)間(sys)、空閑時(shí)間(idle)、IO等待時(shí)間(wait)和被偷走的時(shí)間(stolen,一般被其他虛擬機消耗)。
上述這些CPU時(shí)間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。一般情況下,如果用戶(hù)時(shí)間和系統時(shí)間相加非常大,CPU出于忙于執行指令。如果IO等待時(shí)間很長(cháng),那么系統的瓶頸可能在磁盤(pán)IO。
4.mpstat -P ALL 1
該命令可以顯示每個(gè)CPU的占用情況,如果有一個(gè)CPU占用率特別高,那么有可能是一個(gè)單線(xiàn)程應用程序引起的。
5.pidstat 1
pidstat命令輸出進(jìn)程的CPU占用率,該命令會(huì )持續輸出,并且不會(huì )覆蓋之前的數據,可以方便觀(guān)察系統動(dòng)態(tài)。
6.iostat -xz 1
iostat命令主要用于查看機器磁盤(pán)IO情況。該命令輸出的列,主要含義是:
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫(xiě)次數和每秒讀寫(xiě)數據量(千字節)。讀寫(xiě)量過(guò)大,可能會(huì )引起性能問(wèn)題。
await:IO操作的平均等待時(shí)間,單位是毫秒。這是應用程序在和磁盤(pán)交互時(shí),需要消耗的時(shí)間,包括IO等待和實(shí)際操作的耗時(shí)。如果這個(gè)數值過(guò)大,可能是硬件設備遇到了瓶頸或者出現故障。
avgqu-sz:向設備發(fā)出的請求平均數量。如果這個(gè)數值大于1,可能是硬件設備已經(jīng)飽和(部分前端硬件設備支持并行寫(xiě)入)。
%util:設備利用率。這個(gè)數值表示設備的繁忙程度,經(jīng)驗值是如果超過(guò)60,可能會(huì )影響IO性能(可以參照IO操作平均等待時(shí)間)。如果到達100%,說(shuō)明硬件設備已經(jīng)飽和。
如果顯示的是邏輯設備的數據,那么設備利用率不代表后端實(shí)際的硬件設備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應用程序性能會(huì )不好,可以利用諸如預讀取、寫(xiě)緩存等策略提升應用性能。
7.free -h
free命令可用于查看系統內存的使用情況,最后兩列分別表示用于IO緩存的內存數,和用于文件系統頁(yè)緩存的內存數。需要注意的是,第二行-/+ buffers/cache,看上去緩存占用了大量?jì)却婵臻g。這是Linux系統的內存使用策略,盡可能的利用內存,如果應用程序需要內存,這部分內存會(huì )立即被回收并分配給應用程序。因此,這部分內存一般也被當成是可用內存。
如果可用內存非常少,系統可能會(huì )動(dòng)用交換區(如果配置了的話(huà)),這樣會(huì )增加IO開(kāi)銷(xiāo)(可以在iostat命令中提現),降低系統性能。
8.sar -n DEV 1
sar命令在這里可以查看網(wǎng)絡(luò )設備的吞吐率。在排查性能問(wèn)題時(shí),可以通過(guò)網(wǎng)絡(luò )設備的吞吐量,判斷網(wǎng)絡(luò )設備是否已經(jīng)飽和。如示例輸出中,eth0網(wǎng)卡設備,吞吐率只有大概在0.39Mbytes/s.
9.sar -n TCP,ETCP 1
sar命令在這里用于查看TCP連接狀態(tài),其中包括:
active/s:每秒本地發(fā)起的TCP連接數,既通過(guò)connect調用創(chuàng )建的TCP連接;
passive/s:每秒遠程發(fā)起的TCP連接數,即通過(guò)accept調用創(chuàng )建的TCP連接;
retrans/s:每秒TCP重傳數量;
TCP連接數可以用來(lái)判斷性能問(wèn)題是否由于建立了過(guò)多的連接,進(jìn)一步可以判斷是主動(dòng)發(fā)起的連接,還是被動(dòng)接受的連接。TCP重傳可能是因為網(wǎng)絡(luò )環(huán)境惡劣,或者服務(wù)器壓力過(guò)大導致丟包。
10.top
(具體參考:http://www.tjdsmy.cn/Help/Show-1022.html)
第一行是任務(wù)隊列信息,同 uptime 命令的執行結果一樣:第一列表示當前時(shí)間、第二列表示系統運行了多久、第三列表示當前登陸人數、最后的load average表示的是系統負載(三個(gè)值分別是:1分鐘、5分鐘、15分鐘前到現在的負載平均值)
第二列表示的是進(jìn)程的信息,很直觀(guān)。
[此文摘抄自:infoQ]
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP