linux经常使用性能监测命令top、sar、iostat、pidstat


1,top

  • 经常使用选项:
    -p <pid> 持续跟踪某一进程的状态;
  • 经常使用操做指令:
    数字键1:展开全部cpu的状态;
    shift+< 或者 shift+> : 切换排序的参照字段,向左或者向右;
  • 特殊用法,用于持续跟踪:
    把输出结果重定向到文件:top -n 1 -b | head -30 > top.log

2,sar (由 sysstat 包提供,操做系统可能不自带)

  • sar命令能够监控的性能指标也不少,我习惯上用来监控网卡流量(-n):
  • 用法: sar -n EDEV 1(采样间隔) 10(采样次数)
  • -n DEV : 网络接口统计信息。
    -n EDEV : 网络接口错误。
    -n IP : IP数据报统计信息。
    -n EIP : IP错误统计信息。
    -n TCP : TCP统计信息。
    -n ETCP : TCP错误统计信息。
    -n SOCK : 套接字使用。
  • 此外: -u 选项监控cpu , -r 内存 , -d 磁盘io等;

3,iostat

  • 经常使用用法: iostat -dmx 1(采样间隔) 10(采样次数)
  • 输出样例:
    Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
    sda 1.58 40.77 39.45 273.86 1.10 7.80 58.15 3.69 11.79 1.41 44.07
  • 后面3个指标: io延迟 、io等待时间 、io利用率
  • %util很大 超过80% 设备很忙
    await远大于svctm 延迟很大
    avgqu-sz 队列很长
    r/s,w/s,IO读写次数频繁
    IO等待时间占用百分比大 %iowait
    iowait% <20% 良好
    iowait% <35% 通常
    iowait% >50%
    svctm通常要小于await(由于同时等待的请求的等待时间被重复计算了),svctm的 大小通常和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接致使svctm的增长,通常svctm值在15如下会被认为是一个健康的数值。
    await的大小通常取决于服务时间(svctm)以及I/O队列的长度和I/O请求的发出模 式。若是svctm比较接近await,说明I/O几乎没有等待时间;
    若是await远大于svctm,说明I/O队列太长,应用获得的响应时间变慢,若是响应时间超过了用户能够允许的范围,这时能够考虑更换更快的磁盘,调整内核elevator算法,优化应用,或者升级CPU。

4,smartctl

  • 查看磁盘smart信息:smartctl -a /dev/sda
  • 查看磁盘健康信息: smartctl -H /dev/sda
  • 对磁盘进行自检: smartctl -C -t short(设置为long耗时较长) /dev/sda
  • 查看自检信息: smartctl -l selftest /dev/sda

5,pidstat

  • 查看进程使用资源的状况
  • 经常使用用法,每秒一次查看httpd进程的IO使用状况(-d):
    pidstat -d 1 -p 9323 或者:
    pidstat -d 1 | grep httpd
  • 此外,相似的,也支持 -u CPU , -r 内存;
相关文章
相关标签/搜索