用于资源分析的USE方法
对于每种资源,检查:
1、 Utilization 使用率
2、 Saturation 饱和度
3、 Errors 错误
1、 uptime
2、 dmesg | tail
3、 vmstat 1
4、 mpstat -P ALL 1
5、 pidstat 1
6、 iostat -xz 1
7、 free -m
8、 sar -n DEV 1
9、 sar -n TCP,ETCP 1
10、 top
uptime
这是查看平均负载的快速方法,该平均负载指示要运行的任务(进程)的数量。在Linux系统上,这些数字包括要在CPU上运行的进程以及在不可中断I / O(通常是磁盘I / O)中阻塞的进程。这给出了资源负载(或需求)的高级概念,然后可以使用其他工具进一步探索。
首次响应问题时,可以检查平均负载,以查看问题是否仍然存在。在容错环境中,遇到性能问题的服务器可能会在您登录查看时自动从服务中删除。15分钟的平均负载过高,而1分钟的平均负载过低,则表明您登录得太迟而无法发现问题。
dmesg | tail
[1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0
[...]
[1880957.563400] Out of memory: Kill process 18694 (perl) score 246 or sacrifice child
[1880957.563408] Killed process 18694 (perl) total-vm:1972392kB, anon-rss:1953348kB,
file-rss:0kB
[2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request. Check
SNMP counters.
这将显示过去的10条系统消息(如果有的话),查找可能导致性能问题的错误。
上面的示例包括OOM killer和TCP SYN flooding造成的连接丢弃情况。TCP消息甚至指向您进行下一个分析区域:SNMP计数器。
vmstat 1
这是起源于BSD的虚拟内存统计工具,它还显示其他系统指标。
请注意,第一行数字是自启动以来的摘要(内存计数器除外)。
free -m
推荐使用 -w 参数, 显示的更详细
sar -n DEV 1
sar工具具有用于不同度量标准组的多种模式。
在这里,我使用它来查看网络设备指标。检查接口吞吐量rxkB/s和txkB/s,以查看是否已达到任何限制。
图上可以看到 enp2s0f0的received接收到的流量在 985和 2817kb/s , sended 发出的流量在 847.7和965.78kb/s的样子。
top
top命令,可以具备uptime的功能。此外还能按照cpu或者内存使用率排序、搜索指定进程。 总体而言,top命令具备很强大的process、cpu、mem瓶颈分析功能。这里不过多介绍。