最近逛论坛找到文章一篇“Linux 下的 60 秒分析的检查清单”,这个清单适用于任何性能问题的分析工作。笔者按照这个清单操作一番,感觉颇有意义,在此分享出来!
1、uptime平均负载
这条命令可以快速设备运行时间、检查平均负载。特别是 load average,分别是1 分钟 /5 分钟 /15 分钟的平均负载,负载平均值在排障过程中应该首先进行检查,以确认性能问题是否还存在。
18:40:34 up 1 day, 20:20, 2 users, load average: 0.00, 0.00, 0.00
2、 dmesg | tail 系统日志
这个命令可以显示过去 10 条系统日志,寻找可能导致性能问题的错误。dmesg命令设备故障的诊断是非常重要的。可以使用如more、tail、less 或者grep文字处理工具来处理dmesg命令的输出。由于dmesg日志的输出不适合在一页中完全显示,因此我们使用管道(pipe)将其输出送到more、less命令单页显示或者实时显示。
dmesg | grep sda 显示所有被内核检测到的硬盘设备;
dmesg | head -20 只输出dmesg命令的前20行日志;
dmesg | tail -20 只输出dmesg命令最后20行日志;
dmesg | grep -i usb 搜索包含特定字符串的被检测到的硬件;
dmesg -c 清空dmesg的日志。
tail -f /var/log/dmesg 或者watch "dmesg | tail -20" 来实时监控dmesg的日志输出。使用man dmesg来获取更多关于dmesg的信息。
3、vmstat 1虚拟内存统计
Virtual Meomory Statistics 虚拟内存统计,执行时带着命令行参数 1 时,会隔 1 秒打印一次摘要信息。注意第 1 行输出的数字是自系统启动后的统计值(内存相关的计数器除外)。
这里有个概念叫虚拟内存。物理内存是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。
字段说明:
Procs(进程):
r: 运行队列中进程数量;
b: 等待IO的进程数量;
Memory(内存),单位是KB。
swpd: 使用虚拟内存大小;
free: 可用内存大小;
buff: 用作缓冲的内存大小;
cache: 用作缓存的内存大小;
Swap:
如果这些值不是零,那么意味着系统内存紧张。这个值只有在配置开启了交换分区后才会起作用。
si: 每秒从交换区写到内存的大小;
so: 每秒写入交换区的内存大小;
IO:
现在的Linux版本块的大小为1024bytes。
bi: 每秒读取的块数;
bo: 每秒写入的块数;
系统:
in: 每秒中断数,包括时钟中断。【interrupt】
cs: 每秒上下文切换数。 【count/second】
CPU(以百分比表示):
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
wa: 等待IO时间
st:被窃取时间 stolen time。
4、 free -m可用内存
显示了用兆字节(MB)作为单位的可用内存。
5、 top实时显示 process 的动态
6、sysstat - system performance tools for Linux
这是一款查看系统状态的工具,详情可以查看笔者以前的文章-sysstat性能监控工具。
iostat:报告设备,分区和网络文件系统的CPU统计信息和输入/输出统计信息。
mpstat:报告单个或组合的处理器相关统计信息。