Linux下具有诸多优秀的工具供我们差遣使用,帮助我们了解和分析服务器各项性能指标。
A、CPU相关
常用工具列举下:ps、top、iostat、vmstat、mpstat、sar 等
ps:可查看某个进程占用CPU资源百分比;
top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示;
iostat: 查看所有CPU的平均信息;
vmstat:查看所有CPU的平均信息;查看cpu队列信息;
mpstat: 可以查看所有CPU的平均信息,还能查看指定CPU的信息;
sar: 与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。
B、内存相关
常用工具:free、vmstat
free:可查看内存的总数、已使用、空闲内存数,swap使用(当系统没有足够物理内存来应付所有请求的时候就会用到 swap 设备,swap 设备可以是一个文件,也可以是一个磁盘分区。不过要小心的是,使用 swap 的代价非常大。如果系统没有物理内存可用,就会频繁 swapping,如果 swap 设备和程序正要访问的数据在同一个文件系统上,那会碰到严重的 IO 问题,最终导致整个系统迟缓,甚至崩溃)情况等,特别提醒,如果swap使用较多,说明服务器内存不怎么够用了;
vmstat:可监控虚拟内存使用情况、空闲内存、缓冲、cache等指标,和free工具类似。
C、磁盘I/O相关
常用工具:iostat、sar、fio
iostat:可获取每秒读写的数据块数、所有读写块数等,可对磁盘读写性能有个大体了解,并可以模拟顺序以及随机读写磁盘操作;
sar:可获取磁盘I/O的等待时间和服务时间,以及每秒钟用于I/O操作的百分比等
fio:另一款强大的io压力测试工具,这个工具最大的特点是使用简单,支持的文件操作非常多, 可以覆盖到我们能见到的文件使用方式。
D、网络I/O相关
常用工具:netstat、tcpdump、route、iptarf、netperf
netstat:是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息;
tcpdump :用于监视TCP/IP连接并直接读取数据链路层的数据包头。您可以指定哪些数据包被监视、哪些控制要显示格式;
route:可以为ifconfig命令配置的网卡设置静态路由,在本地 IP 路由表中显示和修改条目网络命令;
iptarf:可用于查看本机网络的吞吐量,获得网络传输速率;
netperf:可以模拟服务器和客户端网络收发,测试网络吞吐量大小;
iperf:类似于netperf,模拟服务器和客户端网络收发,测试最大TCP和UDP带宽性能,能够提供网络吞吐率信息, 以及震动、丢包率、最大段和最大传输单元大小等统计;
附inux工具汇总图,很全面!