Linux 性能分析命令

 

top 命令

  • top -1 按数字1可以看到 多个核,每个核的cpu的使用情况

监控工具\平台来收集cpu的使用率 是所有cpu数量的一个总体的使用率


  • top -E 按大写字母E可以看到不同单位的内存使用情况 KB MB GB TB

mem: buffer cache swap

  • buffer是磁盘虚拟出来的一个缓冲区,用于内存**读取**磁盘数据时,加快读取速度
  • cache 缓存,存在内存、cpu中
  • swap 交互分区 主要是用来,交换内存空间。它也是由磁盘虚拟而来,一般为内存的2倍

任何一个程序启动,都会在内存中占用:虚拟内存和 物理内存


top -f 展示对应指标的含义


查看当前系统cpu使用率最高的4个进程: n 4 回车

按下n

 

输入3

可以查看当前系统cpu使用率最高的3个进程


改变默认刷新时间

top命令默认3秒钟刷新一次数据: s 输入阿拉伯数字 


查看某个进程下的线程资源使用情况: top -H -p pid值


性能基础分析命令 ps 

  • ps -ef -eF -ely使用标准语法查看系统上的每个进程
  • ps aux\ax使用BSD语法查看系统上的每个进程
  • ps -eiH\axms显示进程树
  • ps -eLf \ axms 显示线程信息

ps aux |grep mysqld |grep -v grep


vmstat  命令

通过 yum install sysstat -y 安装

主要用途 : 虚拟内存统计的缩写 ,可以对虚拟内存,进程,cpu 活动进行监控

-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息。

vmstat 1 1  表示每隔一秒采集一次服务器状态,表示只采集一次

 procs

 r : 数字 显示cpu中有多少个进程正在等待

 如果r列是数字,大于cpu核数,那么说明现在现在有大量的进程在等待cpu进行计算,现在可能出现了cpu不够用的情况。----cpu成了我们的性能瓶颈,此时,可能需要去增加cpu数量;或者减少运行的进程数

 b : 数字 现在有多少进程正在不可中断的休眠. 如果这个数字过大,就说明,资源不够用


vmstat 3  表示每3s显示一次数据

procs

  • r 显示多少进程在等待,
  • b 显示多少进程在不可中断的休眠

memory

  • swod显示多少块被换出磁盘
  • free显示剩下的空闲块
  • buff正在被用作缓冲区的块
  • cache正在被用作操作系统的缓存

swap

SI 交换分区中的换入

SO 交换分区中的换出

io

显示了多少块(BYTE)设备  读取 (bi)写(bo) 通常反映了硬I/0

system

显示每秒中断(in)和上下文切换(CS)的数量

CPU

显示所有的CPU时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲和等待IO 

us  sy id wa st

内存不足的表现:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b           swpd    free  buff cache      si     so      bi bo         in        cs us sy id wa st
1  0           0   247556 2108 336784     0     0        58 4           2        56 0 0 99 0 0
  • memory free 急剧减少, 回收buffer 和cache 也没用,
  • 大量使用 swap 页面交换和 swpd交换分区 频繁
  • 磁盘 io 增多
  • sytem 缺页终端 IN 增多
  • 上下文交换CS  次数增多
  • 等待IO的线程数 b 增多
  • 大量cpu 时间用于等待IO  wa 

mpstat

sysstat的工具包,这个工具包中带了很多性能分析命令`yum install sysstat -y` mpstat  是其中的一个

  • mpstat 1 10  每秒显示一次监控数据,总共显示10次

 

  • mpstat -P ALL 3       3  秒获取一次所有的监控数据

具体含义:

  • %usr
  • %nice
  • %sys
  • %iowait
  • %irq 硬中断
  • %soft 软中断
  • %steal
  • %guest 显示cpu或cpu运行虚拟机处理器所花费的时间占比
  • %gnice 显示cpu或cpu运行nices客户机所花费的时间占比
  • %idle

pidstat

看磁盘、内存、cpu的数据,主要看cpu的上下文数据

  • -u 用于查看cpu的数据
  • -w 看cpu的上下文数据
  • UID PID
  •  cswch/s  自愿上下文切换次数 
  •  nvcswch/s 非自愿上下文切换次数
  •  Command

中断 与 上下文切换 的区别 :

  • 中断: 中断当前正在运行的,去做其他事情
  • 上下文切换: 资源的切换
  • 中断时,一定会导致上下文切换,但是上下文切换,不一定会中断。

 


netstat 系统自带

用于显示与IP TCP UDP CMP协议相关的数据统计般用于检验本机各端口的网络连接情况

  • -a显示所有连线中的socket
  • -n 直接使用ip地址,用数字方式显示,而不通过域名服务器
  • -p显示正在使用socket的程序识别码和程序名称
  • -e显示网络相关信息  文件所在位置
  • -t tcp传输协议的连线状况

iostat

显示设备 分区和网络文件系统的CPU统计信息和输入/输出统计信息

  • -c显示CPU使用率报告 cpu
  • -d显示设备使用率报告 disk
  • -k以每秒千字节显示统计报告
  • -m以每秒兆字节显示统计报告
  • -X显示扩展统计信息 

显示设备使用率 每1s刷新一次 刷新3次 cpu

显示设备使用率 每1s刷新一次 刷新3次 磁盘

具体指标含义:

  •  rrqm/s 合并的每秒读请求
  •  wrqm/s 合并的每秒写请求
  •  r/s 读/秒
  •  w/s 写/s
  •  rkB/s 读kb/s
  •  wkB/s
  •  avgrq-sz 平均情况的扇区数
  •  avgqu-sz 等待大的请求数
  •  await 等待的时间
  •  r_await 读等待的时间
  •  w_await 写等待的时间
  •  svctm 实际请求的时间
  •  %util 至少有一个活跃请求的所占的时间百分比

dstat

yum install dstat -y

用于替换vmstat 和iotstat的命令工具,功能强大

  • -c 显示cpu系统占用情况
  • -i 显示中断情况
  • -m 显示内存使用情况
  • -p 显示进程状态
  • -d 显示磁盘读写情况
  • -l  显示系统负载
  • -n 显示网络情况 
  • -r 显示io运行情况

常用 lcmdry

 

posted @ 2022-11-23 20:21  成子吃橙子  阅读(81)  评论(0编辑  收藏  举报