国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

linux 系統監控、診斷工具之 IO wait

系統 Linux 系統運維
最近在做日志的實時同步,上線之前是做過單份線上日志壓力測試的,消息隊列和客戶端、本機都沒問題,但是沒想到上了第二份日志之后,問題來了……

1、問題:

最近在做日志的實時同步,上線之前是做過單份線上日志壓力測試的,消息隊列和客戶端、本機都沒問題,但是沒想到上了第二份日志之后,問題來了:

集群中的某臺機器 top 看到負載巨高,集群中的機器硬件配置一樣,部署的軟件都一樣,卻單單這一臺負載有問題,初步猜測可能硬件有問題了。

同時,我們還需要把負載有異常的罪魁禍首揪出來,到時候從軟件、硬件層面分別尋找解決方案。

2、排查:

從 top 中可以看到 load average 偏高,%wa 偏高,%us 很低:

 

從上圖我們大致可以推斷 IO 遇到了瓶頸,下面我們可以再用相關的 IO 診斷工具,具體的驗證排查下。

 

PS:如果你對 top 的用法不了解,請參考我去年寫的一篇博文:

linux 系統監控、診斷工具之 top 詳解

常用組合方式有如下幾種:

• 用vmstat、sar、iostat檢測是否是CPU瓶頸
• 用free、vmstat檢測是否是內存瓶頸
• 用iostat、dmesg 檢測是否是磁盤I/O瓶頸
• 用netstat檢測是否是網絡帶寬瓶頸

2.1 vmstat

vmstat命令的含義為顯示虛擬內存狀態(“Viryual Memor Statics”),但是它可以報告關于進程、內存、I/O等系統整體運行狀態。

它的相關字段說明如下:

  1. Procs(進程)  
  2. • r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大于1)  
  3. • b: 等待IO的進程數量,也就是處在非中斷睡眠狀態的進程數,展示了正在執行和等待CPU資源的任務個數。當這個值超過了CPU數目,就會出現CPU瓶頸了  
  4.    
  5. Memory(內存)  
  6. • swpd: 使用虛擬內存大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。  
  7. • free: 空閑物理內存大小。  
  8. • buff: 用作緩沖的內存大小。  
  9. • cache: 用作緩存的內存大小,如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會非常小。  
  10.    
  11. Swap  
  12. • si: 每秒從交換區寫到內存的大小,由磁盤調入內存。  
  13. • so: 每秒寫入交換區的內存大小,由內存調入磁盤。  
  14. 注意:內存夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑內存(free)很少的或接近于0時,就認為內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那么不用擔心,系統性能這時不會受到影響的。  
  15.    
  16. IO(現在的Linux版本塊的大小為1kb)  
  17. • bi: 每秒讀取的塊數  
  18. • bo: 每秒寫入的塊數  
  19. 注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。  
  20.    
  21. system(系統)  
  22. • in: 每秒中斷數,包括時鐘中斷。  
  23. • cs: 每秒上下文切換數。  
  24. 注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。  
  25.    
  26. CPU(以百分比表示)  
  27. • us: 用戶進程執行時間百分比(user time)  
  28. us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那么我們就該考慮優化程序算法或者進行加速。  
  29. • sy: 內核系統進程執行時間百分比(system time)  
  30. sy的值高時,說明系統內核消耗的CPU資源多,這并不是良性表現,我們應該檢查原因。  
  31. • wa: IO等待時間百分比  
  32. wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。  
  33. • id: 空閑時間百分比 

從 vmstat 中可以看到,CPU大部分的時間浪費在等待IO上面,可能是由于大量的磁盤隨機訪問或者磁盤的帶寬所造成的,bi、bo 也都超過 1024k,應該是遇到了IO瓶頸。

 

2.2 iostat

下面再用更加專業的磁盤 IO 診斷工具來看下相關統計數據。

 

它的相關字段說明如下:

 

 

 

 

  1. rrqm/s:    每秒進行 merge 的讀操作數目。即 delta(rmerge)/s  
  2. wrqm/s:    每秒進行 merge 的寫操作數目。即 delta(wmerge)/s  
  3. r/s:       每秒完成的讀 I/O 設備次數。即 delta(rio)/s  
  4. w/s:       每秒完成的寫 I/O 設備次數。即 delta(wio)/s  
  5. rsec/s:    每秒讀扇區數。即 delta(rsect)/s  
  6. wsec/s:    每秒寫扇區數。即 delta(wsect)/s  
  7. rkB/s:     每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。(需要計算)  
  8. wkB/s:     每秒寫K字節數。是 wsect/s 的一半。(需要計算)  
  9. avgrq-sz:  平均每次設備I/O操作的數據大小 (扇區)。delta(rsect+wsect)/delta(rio+wio)  
  10. avgqu-sz:  平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。  
  11. await:     平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)  
  12. svctm:     平均每次設備I/O操作的服務時間 (毫秒)。即 delta(use)/delta(rio+wio)  
  13. %util:     一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因為use的單位為毫秒) 

 

可以看到兩塊硬盤中的 sdb 的利用率已經 100%,存在嚴重的 IO 瓶頸,下一步我們就是要找出哪個進程在往這塊硬盤讀寫數據。

2.3 iotop

 

根據 iotop 的結果,我們迅速的定位到是 flume 進程的問題,造成了大量的 IO wait。

但是在開頭我已經說了,集群中的機器配置一樣,部署的程序也都 rsync 過去的一模一樣,難道是硬盤壞了?

這得找運維同學來查證了,***的結論是:

Sdb為雙盤raid1,使用raid卡為“LSI Logic / Symbios Logic SAS1068E”,無cache。近400的IOPS壓力已經達到了硬件極限。而其它機器使用的raid卡是“LSI Logic / Symbios Logic MegaRAID SAS 1078”,有256MB cache,并未達到硬件瓶頸,解決辦法是更換能提供更大IOPS的機器。

不過前面也說了,我們從軟硬件兩方面著手的目的就是看能否分別尋求代價最小的解決方案:
 

知道硬件的原因了,我們可以嘗試把讀寫操作移到另一塊盤,然后再看看效果:

 

 

 

3、***的話:另辟蹊徑

其實,除了用上述專業的工具定位這個問題外,我們可以直接利用進程狀態來找到相關的進程。

我們知道進程有如下幾種狀態:

  1. PROCESS STATE CODES  
  2.  D uninterruptible sleep (usually IO)  
  3.  R running or runnable (on run queue)  
  4.  S interruptible sleep (waiting for an event to complete)  
  5.  T stopped, either by a job control signal or because it is being traced.  
  6.  W paging (not valid since the 2.6.xx kernel)  
  7.  X dead (should never be seen)  
  8.  Z defunct ("zombie") process, terminated but not reaped by its parent. 

其中狀態為 D 的一般就是由于 wait IO 而造成所謂的”非中斷睡眠“,我們可以從這點入手然后一步步的定位問題:

  1. for x in `seq 10`; do ps -eo state,pid,cmd | grep "^D"echo "----"; sleep 5; done  
  2.  D 248 [jbd2/dm-0-8]  
  3.  D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp  
  4.  ----  
  5.  D 22 [kdmflush]  
  6.  D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp  
  7.  ----  
  8. # 或者:  
  9. while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done  
  10.  Tue Aug 23 20:03:54 CLT 2011  
  11.  root       302  0.0  0.0      0     0 ?        D    May22   2:58  \_ [kdmflush]  
  12.  root       321  0.0  0.0      0     0 ?        D    May22   4:11  \_ [jbd2/dm-0-8]  
  13.  Tue Aug 23 20:03:55 CLT 2011  
  14.  Tue Aug 23 20:03:56 CLT 2011  
  15.    
  16. cat /proc/16528/io  
  17.  rchar: 48752567  
  18.  wchar: 549961789  
  19.  syscr: 5967  
  20.  syscw: 67138  
  21.  read_bytes: 49020928  
  22.  write_bytes: 549961728  
  23.  cancelled_write_bytes: 0  
  24.     
  25. lsof -p 16528  
  26.  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  
  27.  bonnie++ 16528 root cwd DIR 252,0 4096 130597 /tmp  
  28.  <truncated>  
  29.  bonnie++ 16528 root 8u REG 252,0 501219328 131869 /tmp/Bonnie.16528  
  30.  bonnie++ 16528 root 9u REG 252,0 501219328 131869 /tmp/Bonnie.16528  
  31.  bonnie++ 16528 root 10u REG 252,0 501219328 131869 /tmp/Bonnie.16528  
  32.  bonnie++ 16528 root 11u REG 252,0 501219328 131869 /tmp/Bonnie.16528  
  33.  bonnie++ 16528 root 12u REG 252,0 501219328 131869 <strong>/tmp/Bonnie.16528</strong>  
  34.     
  35. df /tmp  
  36.  Filesystem 1K-blocks Used Available Use% Mounted on  
  37.  /dev/mapper/workstation-root 7667140 2628608 4653920 37% /  
  38.     
  39. fuser -vm /tmp  
  40.         USER        PID ACCESS COMMAND  
  41.  /tmp:  db2fenc1   1067 ....m db2fmp  
  42.         db2fenc1   1071 ....m db2fmp  
  43.         db2fenc1   2560 ....m db2fmp  
  44.         db2fenc1   5221 ....m db2fmp 

4、Refer:

[1] Troubleshooting High I/O Wait in Linux

        ——A walkthrough on how to find processes that are causing high I/O Wait on Linux Systems

http://bencane.com/2012/08/06/troubleshooting-high-io-wait-in-linux/

[2] 理解Linux系統負荷

http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html
 

[3] 24 iostat, vmstat and mpstat Examples for Linux Performance Monitoring

http://www.thegeekstuff.com/2011/07/iostat-vmstat-mpstat-examples/
 

[4] vmstat vmstat命令

http://man.linuxde.net/vmstat

[5] Linux vmstat命令實戰詳解

http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html

[6] 影響Linux服務器性能的因素

http://www.rocklv.net/2004/news/article_284.html
 

[7] linux磁盤IO查看iostat,vmstat

http://blog.csdn.net/qiudakun/article/details/4699587
 

[8] What Process is using all of my disk IO

http://stackoverflow.com/questions/488826/what-process-is-using-all-of-my-disk-io

[9] Linux Wait IO Problem

http://www.chileoffshore.com/en/interesting-articles/126-linux-wait-io-problem
 

[10] Tracking Down High IO Wait in Linux

http://ostatic.com/blog/tracking-down-high-io-wait-in-linux

原文出自:http://my.oschina.net/leejun2005/blog/355915

責任編輯:林師授 來源: oschina
相關推薦

2013-08-19 09:53:01

系統監控lsof 監控工具

2010-05-19 10:14:41

vmstatLinux系統監控工具

2010-05-19 09:33:27

Linux系統監控工具top

2014-09-22 13:31:46

Linux

2011-11-08 21:47:37

Linux 監控 IO

2010-05-26 18:31:51

Linux性能監控

2020-02-27 13:23:30

LinuxGlances監控工具

2011-01-06 13:45:51

linux流量監控iftop

2015-11-10 16:55:00

性能IO子系統Linux

2010-05-31 09:34:11

KDE System Linux監控工具

2020-08-31 09:01:16

GlancesLinux系統監控工具

2014-09-09 09:46:03

Linux性能診斷

2019-03-28 08:00:00

Linux磁盤IO監控存儲設備

2010-12-24 13:25:44

Linux性能監控CPU

2010-06-25 09:47:29

Linux系統監控

2019-09-03 10:05:27

Linux監控系統

2010-05-26 12:57:59

linux 系統監控

2019-06-05 09:14:28

LinuxIO監控分析

2019-09-06 09:36:28

Linux磁盤克隆

2021-03-05 11:35:39

Linux 命令工具
點贊
收藏

51CTO技術棧公眾號

天天综合天天综合色| 日韩欧美亚洲区| h片在线观看视频免费免费| 国产精品美女一区二区在线观看| 日韩精品在在线一区二区中文| 日韩极品一区| 国产精品igao视频| 久久综合另类图片小说| 久久99国产精品自在自在app | 美洲天堂一区二卡三卡四卡视频 | 欧美日韩dvd| 久久精品国内一区二区三区| 精品一区二区三区国产| 欧美 日韩 国产 一区| 国产精品一二区| 日韩美脚连裤袜丝袜在线| 欧美激情一区二区三区成人| 九九九九九九精品任你躁| 久久久精品免费| 国产精品久久久久久久久久辛辛| 日韩在线激情视频| 91精品福利观看| 色妞欧美日韩在线| 成年永久一区二区三区免费视频| 自拍偷拍亚洲在线| 成人网av.com/| 午夜精品三级视频福利| 亚洲区小说区| 91日本视频在线| 99精品国产在热久久| 久久精品五月婷婷| 久国产精品韩国三级视频| 中文字幕一区二区中文字幕| 国产精品中文字幕日韩精品| 久久精品国产sm调教网站演员| 久久―日本道色综合久久| 色综合色综合色综合色综合| 伊人婷婷欧美激情| 川上优的av在线一区二区| 日韩一区二区三区三四区视频在线观看| 97caopron在线视频| 亚洲国产欧美自拍| 精品国产第一国产综合精品| 国产精品国产三级国产aⅴ浪潮| 欧美一级精品片在线看| 99re热精品| 精品一区二区三区影院在线午夜| 国产婷婷一区二区三区| 亚洲狼人国产精品| 91九色在线porn| 亚洲欧美日韩精品久久| 欧美日韩一区二区三区四区不卡| 92福利视频午夜1000合集在线观看| 国产视频一区三区| 欧美a级免费视频| 亚洲视频免费观看| 国产h在线观看| 亚洲人成电影网站| 亚洲福利网站| 久久av免费一区| 本田岬高潮一区二区三区| 性视频在线播放| 精品少妇一区二区三区视频免付费 | 欧美激情视频免费观看| 亚洲色图网站| 手机看片日韩国产| 日韩理论片在线| 麻豆电影在线播放| 久久久av电影| 精品成人一区| 日本va中文字幕| 91麻豆精品国产91久久久更新时间| 四虎成人精品一区二区免费网站| 91中文精品字幕在线视频| 成人精品视频一区二区三区尤物| julia中文字幕久久亚洲蜜臀| 精品乱码亚洲一区二区不卡| 国产香蕉精品| 日本一区高清不卡| 亚洲老妇xxxxxx| 成人在线视频播放| 俄罗斯精品一区二区| 国产三级三级三级精品8ⅰ区| www.视频在线.com| 欧美一级片一区| 国产91精品一区二区麻豆网站| 日本ー区在线视频| 九九精品在线观看| 日韩成人伦理电影在线观看| 九草视频在线观看| 久久亚洲精品一区| 日韩中文字幕麻豆| 狠狠狠综合7777久夜色撩人| 国内久久久精品| 国产99一区视频免费| 精品麻豆一区二区三区| 97精品免费视频| 成人动漫在线一区| 超碰中文在线| 黄色99视频| 色哟哟国产精品| 精品国产一区二区三区久久久樱花 | 亚洲精品二区| 色老头久久综合| 红杏视频成人| 日韩国产成人无码av毛片| 91精品久久久久久久久99蜜臂| 久久av免费看| 欧美日韩激情视频在线观看| 亚洲国产精品99| 久久成人免费| 欧美伦理影视网| 国产精品美女免费看| 国产精品久久二区二区| 国产专区精品| 青青草原av在线播放| 中文字幕亚洲欧美在线| 日本少妇一区二区| 成人在线app| 久久手机视频| 欧美高清激情brazzers| 午夜精品av| 久久久久久女乱国产| 91老司机在线| 色婷婷激情久久| 国产精品mm| 在线观看麻豆| 久久精品人人做人人爽电影| 91麻豆精品国产| 日韩国产欧美一区二区三区| 国产在线xxx| 一本色道久久88亚洲精品综合| 亚洲精品电影网站| 国产真实乱偷精品视频免| 国产直播在线| 日韩中文字幕亚洲精品欧美| 最新国产精品亚洲| 久久久亚洲精品石原莉奈| 欧美精品三级在线| av天天在线| 91色在线视频| 欧美一区二区在线免费播放| 蜜臀久久99精品久久久久宅男| 手机在线理论片| 激情小视频网站| 久久影院中文字幕| 国产精品美女久久久久久久久| 免费视频亚洲| 国产资源在线观看| 午夜老司机精品| www.亚洲成人| 亚洲日本一区二区三区| 一个色综合网| 在线中文字幕电影| 久久福利一区二区| 性欧美亚洲xxxx乳在线观看| 黑人与娇小精品av专区| 日日夜夜精品视频免费| 精品91久久| 不卡的av中文字幕| 91久久精品国产91性色| 69堂成人精品免费视频| 国产九九视频一区二区三区| 国产精品一区二区三区www| 国产一级粉嫩xxxx| 免费在线成人av| 久久亚洲国产精品| 亚洲第一搞黄网站| 日本午夜精品一区二区三区电影| 99久久久成人国产精品| 小香蕉视频在线| 亚洲欧美精品| 18久久久久久| 91精品国产综合久久久蜜臀粉嫩 | 精品中文字幕一区二区三区四区| 成人黄色电影在线| 国产主播一区二区三区四区| 亚洲国产精品99| 国产精品美女久久久久久久久久久| 欧美在线免费| 成人在线免费电影网站| 日本视频二区| 爱爱爱视频网站| 欧美专区日韩视频| 欧美成人精品二区三区99精品| 国产人久久人人人人爽| 亚洲黄色av| 国产毛片精品| 性网站在线观看| 69av二区| 成年人黄色在线观看| 国产精品777| 亚洲欧美制服综合另类| 五月天亚洲精品| 粉嫩av亚洲一区二区图片| 91精品国产91久久久久久黑人| 成人天堂yy6080亚洲高清| 国产理论电影在线观看| 国内自拍视频一区| 9999在线观看|