Linux系统性能查询命令

时间:2022-06-09 16:28:27

top命令(整机)

可以查看进程的cpu占用率,和内存占用率。uptime 是top的精简版只看整机,不看各进程。

load average: 0.00, 0.00, 0.00  表示系统1分钟,5分钟,15分钟的负载值,如果三个数平均值大于0.6,说明系统负载较高。

vmstat(CPU):

例如vmstat  -n 2 3  每2秒采样一次,采样3次

— proce r:表示运行和等待CPU时间片的进程数,原则上1核的运行队列不要超过2,整个系统的运行队列不能超过核数的2倍。b:表示等待资源的进程数,比如正在等待磁盘I/O,网络I/O等。

— cpu  us:用户消耗CPU时间百分比,us值高,用户消耗CPU时间多,如果长期大于50%需要优化程序。 sy:内核消耗进程的CPU时间百分比。us+sy大于80%,说明可能CPU不足。

pidstat(CPU):

mpstat -P ALL 2     查看所有CPU核信息

pidstat -u 1 -p 进程号    查看进程使用CPU的用量分解信息

pidstat -p 进程号  -r 秒数   查看进程内存的占用率 每几秒采样一次

pidstat -d 2 -p 进程号    查看进程磁盘占用情况

free(内存):

free -m 查看系统内存单位M

df(硬盘):

df -h  查看硬盘占用空间

iostat(磁盘IO):

iostat -xdk 2 3  查看磁盘快设备分布

rKB/s wKb/s 表示每秒读写量,svctm I/O await I/O分别表示请求的平均服务时间和等待时间,单位毫秒 值接近说明没有等待磁盘性能好。

ifstat(网络IO):

ifstat  查看网络IO情况

 

CPU占用过高案例排查分析:

1 用top命令查找出CPU占比最高的进程 id

2 ps -ef 或者jps进一步定位,得知哪个后台程序

3 ps -mp 进程号 -o  THREAD,tid, time    定位到具体线程

4 将需要的线程ID转换为16进制格式(英文小写格式)

5 jstack 进程ID | gep tid(16进制线程ID小写字母) -A60  查看线程出现问题的代码日志