Linux性能排查:top,iotop,iftop,iostat,netstat,vmstat,sar
参考:
https://www.cnblogs.com/soul-stone/p/6798845.html(linux性能监控命令)
linux性能指标主要有:cpu占用,内存、磁盘、网络的占用和读写速度!
top
参考:
https://linux.cn/article-2352-1.html(top交互)
top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。对系统管理员来说,top命令式是一个非常有用的,它可用于监控系统并在需要的时候采取正确的处理动作。
top //交互界面的操作 #排序相关 输入 M 按占用内存排序 输入 P 按占用cpu排序 输入 T 按时间 输入 R 反向排序 #展示相关 V:按进程父子关系树展示 c:展示完整执行命令行 l:负载load t:cpu task m:内存 mem #设置相关:esc键退出 f:选择字段,使用 空格键 或 d键 切换,esc退出 d:显示或设置刷新时间 u:用户名搜索,输入用户名 回车执行,空表示全部 k:给进程发信号,输入进程id 回车执行 L:进程名/命令名搜索,输入进程名,回车执行 //启动参数 -b 批处理模式,可以保存文件输出 -p 进程号 -H 线程模式 -u 用户 -c 完整命令行 -d 设置刷新时间
iotop(磁盘io监控)
监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。
#安装目录 yum install iotop -y iotop
iftop(网络流量监控)
类似于top的实时流量监控工具。
iftop
iostat(磁盘输入输出统计)
用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。
iostat
netstat(网络状态)
一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个非常有用的工具,系统管理员可以用来监控网络性能,定位并解决网络相关问题。
netstat -i
vmstat
用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。缺省情况下, vmstat 命令在 Linux 系统下不可用,你需要安装一个包含了 vmstat 程序的 sysstat 软件包。
vmstat
tcpdump
tcpdump是使用最广泛的命令行网络数据包分析器或数据包嗅探程序之一,用于捕捉或过滤在网络上通过某个接口接收或传输的TCP/IP数据包。它还提供了这个选项:把捕捉到的数据包保存到一个文件中,供以后分析。Tcpdump几乎出现在所有主要的Linux发行版环境下。
tcpdump -i enp0s3 -v
lsof
在许多Linux或者类Unix系统里都有lsof命令,它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。
lsof | more
sar
收集并报告操作系统中的大量系统活动, 包括 I/O操作、 CPU利用情况、 上下文切换和中断速率、 页换入和页换出的速率, 以及共享内存、
缓冲区和网络的使用情况。基于数量和时间间隔参数的取值, sar在以秒为单位的指定时间间隔内执行指定次数的输出信息操作。 例如命令 sar -b 3 12表示每隔 3s报告磁盘使用情况, 总共运行 12秒。另外,在数据采集结束后,给出了统计平均数据。 sar是一个具有丰富选项的工具。
sar -b 3 12