免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4726 | 回复: 7
打印 上一主题 下一主题

[SCO UNIX] 如何通过sar快速定位制约系统性能的瓶颈 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-09 15:10 |只看该作者 |倒序浏览
看到sco技术中心2006-1-6更新的一篇文章,感觉不错
E文原文见:
http://wdb1.sco.com/kb/showta?taid=116222&qid=331182082&sid=417431500&pgnum=1

  1. 在系统运行效率慢之前和运行效率慢的时候分别执行sar操作,
  2. 对比二者的结果可以比较快的判断出问题所在

  3. 第1步:
  4. # sar 1 5
  5. 09:35:13    %usr    %sys    %wio   %idle (-u)
  6. 09:35:14      17       0       0      83
  7. 09:35:15       5       0       0      95
  8. 09:35:16       5       0       0      95
  9. 09:35:17       5       0       0      95
  10. 09:35:18       5       1       0      94

  11. Average        7       0       0      92
  12. 对比系统变慢之前和慢之间分别执行上述命令的结果可以初步定位系统主要的瓶颈

  13. 如果%usr的平均值高,表示系统等待用户程序的比例高
  14. (比如排序,数据处理,数据计算等)
  15. 罪魁祸首:高峰期不必要的程序运行,CPU速度慢或数量不足,
  16. 效率低下的用户程序或守护处理进程以及错误的进程优先级nice

  17. 如果%sys高,表示系统等待设备驱动系统调用的比例高
  18. 罪魁祸首:效率低下的设备驱动程序,硬件故障导致的假中断,
  19. CPU速度慢或数量不足

  20. 如果%usr和%sys都高,表示系统等待用户或内核产生的系统调用比例高
  21. 罪魁祸首:CPU速度慢或数量不足

  22. 如果%wio高,表示系统等待硬盘io存取数据的比例高
  23. 罪魁祸首:硬盘缓存不足(NBUF/NHBUF配置不足),硬盘慢,
  24. 内存不足,运行程序有内存泄漏或占用过多内存

  25. 第2步:
  26. 一 如果%usr高:
  27. 1)检查占用CPU的进程
  28. # ps -el | more
  29.   F S    UID   PID  PPID  C PRI NI     ADDR   SZ  TTY       TIME CMD
  30. 71 S      0     0     0  0  95 20 fb117000    0    ?   00:00:01 sched
  31. 20 S      0     1     0  0  66 20 fb117158  148    ?   00:00:00 init
  32. ...
  33. 20 S      0   347     1  0  76 24 fb119db0  312    ?   00:00:00 snmpd
  34. 20 S     17   349     1  1  66 20 fb119f08  156    ?   01:05:53 deliver
  35. 20 S      0   413   410  0  75 20 fb11a060  128    ?   00:00:00 lockd
  36. 检查C和TIME列的值,如果哪行TIME(单位是分:秒:百分之一秒)异常的高,并且C是>0的数字,
  37. 那么这个CMD显示的进程程序就是太耗费资源的元凶,
  38. 上面所是的例子deliver表示累计占了1分钟CPU,还算正常,假如是1000:05:53那么它就是问题所在了

  39. 也可用who命令检查,比如
  40. # w
  41.    4:41pm  up  5:04,  3 users,  load average: 0.00 0.00 0.00
  42. User     tty            login@   idle    JCPU    PCPU  what
  43. root     tty01         11:51am          21:38          bash
  44. root     tty03          4:31pm      9                  -sh
  45. root     ttyp1          1:55pm                         w

  46. # who -u | sort -k 6 -r
  47. root       tty03        Jul  6 16:31  0:09   1774
  48. root       ttyp1        Jul  6 13:55  0:01   3902
  49. root       tty01        Jul  6 11:51   .     1773

  50. 2) 检查系统调用的情况
  51. # sar -c 1 5
  52. SCO_SV tuvok 3.2v5.0.5 i80386    06/21/2001

  53. 09:55:08 scall/s sread/s swrit/s  fork/s  exec/s  rchar/s  wchar/s (-c)
  54. 09:55:09    1216      67      12    0.99    0.99   178441     3988
  55. 09:55:10     147      31       6    0.00    0.00   168723     8421
  56. 09:55:11      74      27       4    0.00    0.00   163644     3342
  57. 09:55:12     245      37       6    0.00    0.00   171821     8928
  58. 09:55:13     151      29       4    0.00    0.00   163770     3468

  59. Average      367      38       6    0.20    0.20   169280     5629
  60. 对比系统变慢之前和慢之间分别执行上述命令的结果,
  61. 如果系统变慢之后scall/s列的值增大很多,表示
  62.     .程序突然被频繁使用
  63.     .系统运行的程序太多了,可用ps命令确认.
  64. 如果系统变慢之后fork/s,exec/s或sread/s,swrit/s异常的高,
  65. 检查fork过多,读写操作频繁的程序,优化代码降低资源占用

  66. 二 如果%sys高
  67. 如果是多CPU系统且系统有SMP支持,执行下列命令查看是否有设备在发送成千上万的中断
  68. OpenServer5执行: #sar -j 1 5
  69. UnixWare7/OpenUnix8执行: #sar -P ALL 1 5
  70. 检查访问磁带机,第3方smart boards以及非硬盘设备的设备的程序

  71. 三 如果%usr和%sys都高
  72. 1) 检查系统队列
  73. # sar -q 1 5

  74. SCO_SV lunasco 3.2v5.0.4 Pentium    06/21/2001

  75. 10:46:29 runq-sz %runocc swpq-sz %swpocc (-q)
  76. 10:46:30     3.0     100
  77. 10:46:31
  78. 10:46:32     1.0     100
  79. 10:46:33     1.0     100
  80. 10:46:34     1.0     100

  81. Average      1.5     100
  82. 其中time平均值应该<3,如果持续高于3那么表示CPU能力不足,如果可能超频或增加CPU

  83. 四 如果%wio高
  84. 1)找出占用资源过多的进程
  85. # ps -el | more
  86.   F S    UID   PID  PPID  C PRI NI     ADDR   SZ  TTY        TIME CMD
  87. 71 S      0     0     0  0  95 20 fb117000    0    ?    00:00:01 sched
  88. 20 S      0     1     0  0  66 20 fb117158  148    ?    00:00:00 init
  89. 71 S      0     2     0  0  95 20 fb1172b0    0    ?    00:00:00 vhand
  90. 71 S      0     3     0  0  95 20 fb117408    0    ?    00:00:16 bdflush
  91. 71 S      0     4     0  0  95 20 fb117560    0    ?    00:00:00 kmdaemon
  92. 71 S      0     5     1  0  95 20 fb1176b8    0    ?    00:00:18 htepi_daemon
  93. ...
  94. 20 S      0   252     1  0  76 20 fb118830  152    ?    00:00:00 cron
  95. 20 S      0   354     1  0  76 24 fb118988 233504    ?    00:00:03 report
  96. 20 S      0   496     1  0  76 24 fb118ae0  200    ?    00:00:00 calserver
  97. 检查那些SZ值高的程序,看看是否占用内存过多或没有及时释放内存,
  98. 上面所列的report程序就占太多的内存资源

  99. 2)检查可用内存大小
  100. # sar -r 1 5

  101. SCO_SV tuvok 3.2v5.0.5 i80386    06/21/2001

  102. 10:34:13   freemem   freeswp availrmem availsmem (-r)
  103. 10:34:14      8262    389120     28765     56421
  104. 10:34:15      8262    389120     28765     56421
  105. 10:34:16      8262    389120     28765     56421
  106. 10:34:17      8262    389120     28765     56421
  107. 10:34:18      8262    389120     28765     56421

  108. Average       8262    389120     28765     56421
  109. 如果freemem(单位4K页)<500并且freeswp变化较大,表明内存不足需要增加内存
  110. 注意: OpenServer5的sar -r列出的是硬盘上所有交换区容量的和,
  111. Unixware7/OpenUnix8的sar -r列出的是内存条RAM容量加上交换区的容量值

  112. 3) 检查硬盘IO情况
  113. # sar -b 1 5
  114. SCO_SV tuvok 3.2v5.0.5 i80386    06/21/2001
  115. 10:37:17 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s (-b)
  116. 10:37:18       0       0       0       0       0       0       0       0
  117. 10:37:19       0       0       0       0       0       0       0       0
  118. 10:37:20       0      60     100       0       1     100       0       0
  119. 10:37:21       0      -1     100       0       0       0       0       0
  120. 10:37:22       0      56     100       0       1     100       0       0

  121. Average        0      24     100       0       0     100       0       0
  122. 如果 %rcache 的值持续<85 或 %wcache的值<80,那么表明系统硬盘缓存不足
  123. 把内核参数NBUF调大50%,同时适当加大NHBUF

  124. Unixware7/OpenUnix8下还需要调整下列内核参数:
  125. "FDFLUSHR": 检查是否需要写缓存和文件页到硬盘的时间间隔(秒),默认为1秒
  126. "NAUTOUP", 文件系统update的时间间隔(秒) 默认是60秒
  127. 也可用sar -d检查磁盘IO情况
  128. # sar -d
  129. UnixWare omega 5 7.1.3 i386    02/09/05
  130. 00:00:00 device         MB       %busy   avque   r+w/s  blks/s  avwait  avserv
  131. 10:40:01 c0b0t0d0s1     12867       90    23.7       8      83  2556.6   112.8
  132. 10:40:01 c0b0t0d0s10    50           0     1.0       0       0     0.0   790.0
  133. 10:40:01 c0b0t0d0       17359       90    23.7       8      83  2556.4   112.8
  134. 10:40:01 c0b0t1d0s12    65458        1     1.6       2      21     4.1     6.9
  135. 10:40:01 c0b0t1d0       69459        1     1.6       2      21     4.1     6.9
  136. 10:40:01 c0b0t2d0s1     138918       2     3.2       4      86    13.3     6.1
  137. 10:40:01 c0b0t2d0       138919       2     3.2       4      86    13.3     6.1
  138. 对于%busy平均值超过50的硬盘可断定此硬盘目前是影响系统IO性能的瓶颈,
  139. 对于RAID系统,检查逻辑盘状态可通过厂商提供的工具,
  140. 比如HP CISS SMART ARRAY 可运行/usr/bin/compaq/bin/diags/ciss_menu来检查

  141. 如果硬盘指标看起来尚可接受,但是系统的确耗费了大量的时间在IO等待上,
  142. 那么应该需要加内存,并确认是把内核参数NBUF设置到运行所需的实际内存大小

  143. 如果内存和硬盘IO都没有问题,那么你可能需要使用RAID以平衡硬盘负载,
  144. 或者换一个更快的磁盘适配器(disk adapter)

  145. 最后补充说明一下:
  146. 首先你要确认已经安装了最新的系统补丁,
  147. 包括SCSI卡,网卡最新的驱动在内所有sco提供的补丁均可从ftp.sco.com下载

  148. 除了sar之外还有一些非常有用的第3方工具可以帮助你检测系统的运行情况
  149. top / hog: http://www.sco.com/skunkware
  150. SarCheck: http:/www.sarcheck.com
  151. u386mon for OSR5: http://www.sco.com/skunkware/faq.html#u386
复制代码

论坛徽章:
0
2 [报告]
发表于 2006-01-09 18:36 |只看该作者
长见识了。。。。。。。谢谢版主

论坛徽章:
0
3 [报告]
发表于 2006-02-07 21:39 |只看该作者
不懂!学习着懂

论坛徽章:
0
4 [报告]
发表于 2006-02-07 21:47 |只看该作者
不错,学习

论坛徽章:
0
5 [报告]
发表于 2006-04-13 15:55 |只看该作者
坦白说,好多东西看不明白

论坛徽章:
0
6 [报告]
发表于 2006-04-13 16:19 |只看该作者
不错,收藏,谢谢。。。

论坛徽章:
0
7 [报告]
发表于 2006-09-15 12:21 |只看该作者
真是好东西!!!!顶!

论坛徽章:
0
8 [报告]
发表于 2006-09-15 15:13 |只看该作者
经典!!!unix系统维护之宝典
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP