常用命令
1. uptime 显示系统启动时间和平均负载
02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88
2. stress 常用压测命令
cpu密集型压测
stress --cpu 1 --timeout 600
io密集型压测
stress-ng -i 1 --hdd 1 --timeout 600
大量进程压测
stress -c 8 --timeout 600
3. mpstat 查看cpu每核使用变化情况,
# -P ALL 表示监控所有CPU,后面数字5表示间隔5秒后输出一组数据
$ mpstat -P ALL 5
Linux 4.15.0 (ubuntu) 09/22/18 _x86_64_ (2 CPU)
13:30:06 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
13:30:11 all 50.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 49.95
13:30:11 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
13:30:11 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
4. pidstat 查看哪个进程占用资源高,常用 -w -u -t 参数。
命令详解:https://www.jianshu.com/p/3991c0dba094
# 间隔5秒后输出一组数据
$ pidstat -u 5 1 (每核CPU使用情况)
13:37:07 UID PID %usr %system %guest %wait %CPU CPU Command
13:37:12 0 2962 100.00 0.00 0.00 0.00 100.00 1 stress
$./pidstat -w 1 1 (查看应用进程上下文切换次数,如果要查看线程上下文切换,需要加参数 -t,-d 查看IO读写情况)
Linux 3.10.0-1160.el7.x86_64 (mysql) 02/27/2022 _x86_64_ (2 CPU)
01:04:56 PM UID PID cswch/s nvcswch/s Command
01:04:57 PM 0 1 0.98 0.00 systemd
01:04:57 PM 0 9 17.65 0.00 rcu_sched
01:04:57 PM 0 11 0.98 0.00 watchdog/0
01:04:57 PM 0 12 0.98 0.00 watchdog/1
01:04:57 PM 0 14 0.98 0.00 ksoftirqd/1
01:04:57 PM 0 37 0.98 0.00 khugepaged
01:04:57 PM 0 347 0.98 0.00 kworker/0:1H
01:04:57 PM 0 1778 0.98 0.00 kworker/1:1H
01:04:57 PM 0 8980 1.96 0.00 kworker/1:2
01:04:57 PM 0 29566 2.94 0.00 kworker/0:2
01:04:57 PM 0 30382 0.98 0.98 pidstat
5. vmstat 分析内存使用,cpu上下文切换和中断次数
# 每隔5秒输出1组数据
$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 7005360 91564 818900 0 0 0 0 25 33 0 0 100 0 0
cs(context switch)是每秒上下文切换的次数。
in(interrupt)则是每秒中断的次数。
r(Running or Runnable)是就绪队列的长度,也就是正在运行和等待 CPU 的进程数。
b(Blocked)则是处于不可中断睡眠状态的进程数。
6. perf top 分析系统或进程热点函数
$ perf top
Samples: 833 of event 'cpu-clock', Event count (approx.): 97742399
Overhead Shared Object Symbol
7.28% perf [.] 0x00000000001f78a4
4.72% [kernel] [k] vsnprintf
4.32% [kernel] [k] module_get_kallsym
3.65% [kernel] [k] _raw_spin_unlock_irqrestore
...
perf record 采集内容生成报告,一般都会加上 -g 参数,开启调用关系的采样
perf report 显示报告内容
perf top -g -p 21515 分析指定的进程ID性能问题
7. pstree 查看进程之间关系
$ pstree | grep stress
|-docker-containe-+-php-fpm-+-php-fpm---sh---stress
| |-3*[php-fpm---sh---stress---stress]
pstree -aps 进程ID --查看进程关系树
8. sar 分析各方面系统性能
# -n DEV 表示显示网络收发的报告,间隔1秒输出一组数据
$ sar -n DEV 1
15:03:46 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
15:03:47 eth0 12607.00 6304.00 664.86 358.11 0.00 0.00 0.00 0.01
15:03:47 docker0 6302.00 12604.00 270.79 664.66 0.00 0.00 0.00 0.00
15:03:47 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15:03:47 veth9f6bbcd 6302.00 12604.00 356.95 664.66 0.00 0.00 0.00 0.05
常用命令安装##
sysstat工具
github:https://github.com/sysstat/sysstat
9. watch -d cat /proc/softirqs 分析软件中断
根据结果变化内容,主要是看哪个类型的软中断变化较大,再具体分析
sysbench工具
参考阿里云帮助文档:
https://help.aliyun.com/document_detail/53632.html
pstree 命令
yum -y install psmisc