天天看点

linux性能监控

某个线上系统平时非常稳定,当大量更新数据时,系统的服务就会严重超时。问题存在了一段时间,基本猜测系统超时和大量写入数据有关,但却无法给出确切的解释。最近花了几天时间,深入研究这个问题。首先是需要给出问题原因的确切解释。因此,需要监控服务不正常期间linux系统的各种性能。

top -- 查看进程活动状态以及一些系统状况,常用于查看CPU、内存异常的进程PID。

free -- 查看系统整体内存状况。

vmstat  -- 查看系统状态、硬件和系统信息等。查看CPU使用情况、上下文切换情况、进程数(是否过多?)。

iostat -- 查看CPU 负载,硬盘状况。常用于查看IO状况(查看CPU的工具很多)

sar -- 综合工具,查看系统状况。这个太强大了,但自己一般只用类监控网络状况(sar -n DEV|EDEV)

mpstat -- 查看多处理器状况,类似vmstat,适用于多CPU场景(还有非多CPU的服务器不?)

netstat -- 查看网络状况。常用于:产看进程监听的端口、各个端口的recv|send队列状况(是否过载)、收发包的简单统计

iptraf -- 实时网络状况监测。

tcpdump -- 抓取网络数据包,详细分析。强大的网络包分析工具。

tcptrace -- 数据包分析工具。

netperf -- 网络带宽工具。

dstat  -- 综合工具,综合了 vmstat, iostat, ifstat, netstat 等多个信息。

常用工具如上,一般情况下,直接启动命令看输出。但有时需要监控某个特定时间系统的运行状况,简单办法就是定时启动命令,并将命令输入打印到log, 或者使用诸如sar这类强大的性能监视工具。

贴几个监控工具的包装脚本,结合crontab即可实现定时启动、收集一定时间间隔的性能数据。

<a></a>

继续阅读