最近收到線上一臺DB服務器ping丟包,丟包率一直在30%左右。經過Zabbix監控查看了服務器CPU,內存都很正常,網卡流量也不高,基本在100M左右。
緩存
首先確認一下服務器硬件是否正常,因爲沒有收到硬件報警。登陸服務器經過HP管理工具在此確認了硬件信息都正常(硬盤,緩存卡,內存等)。
第二步在排查一下系統問題,經過top,ps等命令也沒有發現什麼異常,基本上排除系統問題。
第三步查看了一下該服務器上聯監控機端口流量,也都很正常,因爲收到只有這一臺服務器報警,也排除了上聯交換機故障問題。
最後向同事諮詢了服務器承載業務類型,每2分鐘會同步大量的數據文件到該服務器上面,而後用sar命令查看一下網卡流量,發現發送流量瞬間在12萬KB/s,換算成b/s基本上在940-950Mb/s,意味着千兆網卡流量基本上爆滿,纔會引發服務器ping丟包。
因爲個人監控是每5分鐘抓一次,因此對應服務器瞬間高流量都沒有獲取到,還得優化一下監控時間間隔。bash
下面順便總結一下sar命令經常使用的選項,sar命令行的經常使用格式以下:
服務器
sar 選項 取樣時間間隔 輸出次數
1)查看CPU信息,1表示1秒鐘取一次值,2表示採集2次數據。
網絡
[root@monitor ~]# sar -u 1 2 Linux 2.6.32-358.el6.x86_64 (monitor) 08/05/16 _x86_64_ (24 CPU) 10:51:39 CPU %user %nice %system %iowait %steal %idle 10:51:40 all 0.08 0.00 0.17 0.00 0.00 99.75 10:51:41 all 0.21 0.00 0.21 0.00 0.00 99.58 Average: all 0.15 0.00 0.19 0.00 0.00 99.67
輸出項說明:
app
CPU all 表示統計信息爲全部CPU的平均值。 %user 顯示在用戶級別(application)運行使用CPU總時間的百分比。 %nice 顯示在用戶級別,用於nice操做,所佔用CPU總時間的百分比。 %system 在覈心級別(kernel)運行所使用CPU總時間的百分比。 %iowait 顯示用於等待I/O操做佔用 CPU 總時間的百分比。 %steal 管理程序(hypervisor)爲另外一個虛擬進程提供服務而等待虛擬 CPU 的百分比。 %idle 顯示CPU空閒時間佔用CPU總時間的百分比。
2)查看網絡接口信息。
運維
[root@monitor ~]# sar -n DEV 1 2 Linux 2.6.32-358.el6.x86_64 (monitor) 08/05/16 _x86_64_ (24 CPU) 11:04:22 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 11:04:23 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:23 eth0 140.40 170.71 98.07 84.00 0.00 0.00 2.02 11:04:23 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:23 eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:23 eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:23 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 11:04:24 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:24 eth0 40.59 26.73 41.62 4.17 0.00 0.00 0.99 11:04:24 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:24 eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:04:24 eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 90.00 98.00 69.56 43.69 0.00 0.00 1.50 Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
輸出項說明:
ide
IFACE 網絡設備名 rxpck/s 每秒接收的包總數 txpck/s 每秒傳輸的包總數 rxKB/s 每秒接收的字節(byte)總數 txKB/s 每秒傳輸的字節(byte)總數 rxcmp/s 每秒接收壓縮包的總數 txcmp/s 每秒傳輸壓縮包的總數 rxmcst/s 每秒接收的多播(multicast)包的總數3)查看磁盤1/0信息。
[root@monitor ~]# sar -b 1 2 Linux 2.6.32-358.el6.x86_64 (monitor) 08/05/16 _x86_64_ (24 CPU) 11:07:55 tps rtps wtps bread/s bwrtn/s 11:07:56 11.11 0.00 11.11 0.00 129.29 11:07:57 6.93 0.00 6.93 0.00 63.37 Average: 9.00 0.00 9.00 0.00 96.00
輸出項說明:
工具
tps 每秒鐘物理設備的I/O傳輸總量 rtps 每秒鐘從物理設備讀入的數據總量 wtps 每秒鐘向物理設備寫入的數據總量 bread/s 每秒鐘從物理設備讀入的數據量,單位爲 塊/s bwrtn/s 每秒鐘向物理設備寫入的數據量,單位爲 塊/s
總結:在系統運維的過程當中,通常關注服務器的下面指標。
CPU使用率:若是服務器CPU使用率超過80-85%,說明服務器CPU處理能力比較繁忙,須要提高CPU性能。
CPU iowait:若是服務器CPU iowait的值大於5-10%,說明磁盤I/O存在瓶頸,須要提高硬盤的讀寫速度。
網卡流量:網卡流量和上聯交換機和服務器網卡都有關係。若是系統和網絡都正常,服務器出現丟包,應該考慮網卡的吞吐率是否達到上限而出現的丟包。性能