Linux下的CPU与内存性能监控命令(建议收藏)

前沿:

CPU和内存是系统层面影响应用性能的重要因素

一.CPU性能监控

查看系统的cpu使用率是否有异常的常用命令有top,vmstat,ps等。

1.top命令

通过命令 top 查看CPU使用情况,按P查看占用cpu最高的进程

top ##监控系统负载工具

在这里插入图片描述
%cpu

  • us 表示用户进程处理所占的百分比
  • sy 表示为内核线程处理所占的百分比
  • ni 表示被nice命令改变优先级的任务所占的百分比
  • id 表示cpu的空闲时间所占的百分比
  • wa 表示为在执行过程中等待io所占的百分比
  • hi 表示为硬件中断所占的百分比
  • si 表示为软件中断所占的百分比
  • st 表示虚拟cpu等待实际cpu的时间的百分比

cpu性能监控主要通过us(用户进程所占用百分比)这个数据来看异常的进程信息。当us接近100%甚至更高时,可以确定是cpu繁忙造成的响应缓慢。一般说来,cpu繁忙的原因有以下几个:

  • 线程中有无限空循环、无阻塞、正则匹配或者单纯的计算
  • 频繁的gc
  • 多线程频繁的上下文切换

top显示进程信息详解

字段 说明
top 系统当期时间
up 系统运行时长
user 登录当前系统的用户数量
load average 平均负载1 ,5,15 分钟的队列长度
task 任务
Mem 物理内存
swap 交换分区占用
%cpu cpu占用百分比

top字段解释

字段 解释
PID 进程ID
USER 用户名称
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量
RES 进程使用的、未被换出的物理内存大小
SHR 共享内存大小
S 进程状态 (D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 )
%CPU 占用cpu百分比
%MEM 占用内存百分比
TIME+ 进程使用的CPU时间总计
COMMAND 进程名称

top内部参数

参数 说明
P cpu百分比排序
M 内存百分比
T 累计占用cpu时间
l 开启/关掉uptime信息
t 开启/关闭task&cpu信息
s 调整刷新频率
k 终止进程
u 查看指定用户进程

2.ps命令

ps ax -o %cpu,comm,pid --sort -%cpu | head -n 10  ##按照cpu负载进行排序

在这里插入图片描述
查使用CPU最多的K个进程

ps -aux | sort -k4nr | head -K

命令解释:

  • ps -aux (a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)
  • sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。
  • head -K(K指代行数,即输出前几位的结果)
  • |为管道符号,将查询出的结果导到下面的命令中进行下一步的操作

3.vmstat

在这里插入图片描述

  • in 每秒CPU的中断次数,包括时间中断
  • cs 每秒上下文切换次数
  • us 用户CPU时间。
  • sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
  • id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
  • wt 等待IO CPU时间

二.内存性能监控

1.top命令

通过命令 top 查看内存使用情况,按M查看占用内存最高的进程

2.ps命令

ps ax -o %mem,comm,pid --sort -%mem | less  ##按照内存负载进行排序

在这里插入图片描述
查看使用内存最多的进程

ps -aux | sort -k3nr | head -K

参考链接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章