linux常用的性能及负载分析工具

1. cpu

1.1 top命令

我们可以通过top命令查看服务器CPU的使用情况及负载情况

$ top
  • 按数字“1”键查看各核数cpu的使用情况,包括用户空间(us)、系统空间(sy)、空闲时间(id)等使用百分比, 这些字段可以帮助你了解CPU的当前负载情况。
  • 按大写字母"P"键可以查看每个进程占用的cpu的百分比
    在这里插入图片描述

1.2 vmstat命令

$ vmstat 2 5

这将每隔2秒采集一次系统性能信息,并显示5次。
在这里插入图片描述

当然也可以把数据长时间输出,重定向一个文件里面去。
us(user space):用户空间中运行的时间百分比。
sy(system space):内核空间中运行的时间百分比。
id:空闲时间百分比。
wa:等待IO的时间百分比,值越大,影响系统的磁盘I/O性能越大。
st:被虚拟机利用的cpu时间百分比,这个值在虚拟化环境下才有意义。

喂!进来深度交流

在这里插入图片描述

2. 内存

2.1 free命令

$ free -m 
$ free -g

在这里插入图片描述
userd + free + buff/cache = total

  • shared 是多个进程共享的内存量

  • buffer是写缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输的数据。它主要用于写入磁盘的场景,例如,当某个进程要求多个字段被写入磁盘时,这些字段在写入磁盘之前会先被存储在buffer中,待所有字段都准备好后再一次性写入磁盘,这样可以减少磁盘I/O操作的次数,提高写入效率。

  • cache是读缓存区,是高速缓存,位于CPU和主内存之间,容量较小但速度很快。它主要用于存储被频繁读取的文件系统数据,包括文件系统的元数据和文件内容。由于读取缓存的速度远快于从磁盘读取,因此cache可以显著提高系统的IO性能。

  • buff/cache:被缓冲(buffers)和缓存(cache)使用的内存量。这部分内存虽然被标记为“已用”,但实际上可以随时被回收用于新的应用需求,因此不应被视为真正的“已用”内存,因为当系统内存资源紧张的时候会使用到buff/cache占用的内存。

  • 如果available内存很低,那么可能需要考虑增加物理内存或优化现有应用程序的内存使用。

2.2 top命令

$ top

top 命令看内存资源使用率没有free命令那么直观,但是top命令可以看进程占用的内存百分比
在这里插入图片描述

2.3 vmstat命令

$ vmstat

在这里插入图片描述

swpd:显示每秒交换到磁盘(分页)的内存量,这个值越高说明系统内存不足,正在频繁地使用交换空间,系统性能也会下降。
free: 可用的内存
buff:是系统所占用的写缓存量,这个内存会根据系统情况会被回收
cache:是系统占用的读缓存量,这个内存会根据系统情况会被回收

可用使用sync命令确保数据缓存的数据写入磁盘,释放缓存空间

3. 硬盘

3.1 df命令

$ df -hi
$ df -hT

在这里插入图片描述
inodes是用来存储文件的元数据的,意味着当你需要访问文件的属性或数据时,系统会通过inode快速定位到相应的信息。在创建文件系统时,inode的数量就已经确定。一旦inode被用完,即使磁盘空间还有剩余,也无法再创建新文件。这是因为每个文件或目录都需要一个inode来存储其元数据。

inode用完可能会导致文件系统无法正常操作,因为每个文件或目录都需要一个inode来存储其元数据。
排查方法:
1、用df -ih命令查找哪个分区面临inodes耗尽
2、查找占用大量inode的目录find / -type f | xargs ls -li | sort -nrk 9 | head -n 20命令根据需求进行调整。
3、清理不必要的文件和目录

3.2 iotop命令

# 显示所有进程的io情况
$ iotop
# 只显示有io的进程 
$ iotop -o

在这里插入图片描述

TID 线程号或进程号
PRIO 线程运行时的I/O优先级
USER 进程所属用户
DISK READ 刷新时间间隔内读取数据量
DISK WRITE 刷新时间间隔内写入数据量
SWAPIN 每个进程的交换使用率
IO 每个进程的 I/O 利用率,包含磁盘和交换
COMMAND 进程名字

3.3 iostat命令

每秒更新一次数据,显示10次

$ iostat /dev/sd[a-z] -x -m 1 10

在这里插入图片描述

  • rMB/s(每秒读请求)
  • wMB/s(美妙写请求)
  • svctm是平均每次io请求的响应时间。
  • avgrq-sz(平均请求大小)
  • avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好
  • await是平均每次io请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
  • util是设备的利用率。如果它接近100%说明磁盘性能达到瓶颈

4.网络流量

4.1 iftop命令

iftop上面显示说明:

  • 中间的<= =>这两个左右箭头,表示的是流量的方向。“=>”代表发送数据,“<=”代表接收数据
  • 最右列又分为三小列,这些实时参数分别表示外部 IP 连接到本机 2 秒内、10 秒内和 40 秒内的平均流量值。
$ iftop -i ens32

在这里插入图片描述
iftop最下面显示说明

  • TX:发送流量
  • RX:接收流量
  • TOTAL:总流量
  • Cumm:运行iftop到目前时间的总流量,也就是累计值
  • peak:流量峰值
  • rates:分别表示过去 2s 10s 40s 的平均流量

5. 网络连接

5.1 ss命令

$ ss -ntlup  

在这里插入图片描述

6. 进程

6.1 ps命令

# 查看所有进程的使用
$ ps -aux
# 查看进程占用cpu使用率前10的进程
$ ps -eo pid,ppid,%cpu,comm --sort=-%cpu | head -n 11
# 查看进程占用内存使用率前10的进程
$ ps -eo pid,ppid,%mem,comm --sort=-%mem | head -n 11

在这里插入图片描述

  • VSZ表示进程所能访问的虚拟内存总量,单位通常是KB
  • RSS表示进程当前在物理内存中占用的空间大小,单位通常也是KB

6.2 top命令

上述第1大点已说过

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值