ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux系统检测可能会使用到的命令汇总

2022-05-30 11:33:55  阅读:163  来源: 互联网

标签:显示 百分比 检测 汇总 内存 linux 进程 磁盘 CPU


1.uptime命令

  uptime命令能够打印系统总共运行了多长时间以及系统的平均负载。

直接在命令行敲uptime会显示下面数据:
16:19:08 up 114 days, 17:18,  2 users,  load average: 0.00, 0.01, 0.05

#16:19:08 是当前服务器的时间
#114 days 是当前服务器运行的时间长度
#2 users 当前的用户数量
#load average: 0.00, 0.01 是当前系统的负载,分别是1 5 15分钟的均值

2.top命令

2.1 top显示出来各个参数的含义

第一行的内容所代表的含义如下:
#16:37:02  系统的时间
# 114 days 系统已运行多长时间
# 2 users  当前的用户
# load average: 0.02, 0.02, 0.05 系统负载

第二行的内容所代表的含义如下:
#Tasks:  79 total  总的任务进程数
#1 running         运行的进程数
#78 sleeping       休眠的进程数
#0 stopped         停止的进程数
#0 zombie          僵尸进程数

第三行的内容所代表的含义如下:
#%Cpu(s)    CPU状态信息
#0.7 us    (user space)用户空间占用CPU的百分比
#0.7 sy    (sysctl)内核空间占用CPU百分比
#0.0 ni     改变过优先级的进程所占用CPU的百分比
#98.7 id    空闲CPU百分比
#0.0 wa     IO等待占用CPU百分比
#0.0 hi     硬中断占用CPU百分比
#0.0 si     软中断占用CPU百分比
#0.0 st    

第四行的内容所代表的含义如下:
#KiB Mem        内存信息
#1882048 total  物理内存的总大小
#104160 free    空闲内存的大小
#544756 used    使用的内存的大小
#1233132 buff/cache   用做内核缓存的内存大小

第五行的内容所代表的含义如下:
#KiB Swap   swap内存信息
#0 total    交换分区的总大小
#0 free     空闲的交换分区大小
#0 used     使用的交换分区大小
#1164664 avail Mem  代表可以使用于下一次分配的物理内存数量

这一行是进程相关的一些信息,这里显示的只是一部分,剩余的部分可以按f建进入去选择,下面会列出所有的有关参数所代表的含义:
PID     进程的ID
USER    进程所有者的用户名
PR      优先级
NI      nice值。负值表示高优先级,正值表示低优先级
VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR     共享内存大小,单位kb
S       进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU    上次更新到现在的CPU时间占用百分比
%MEM    进程使用的物理内存百分比
TIME+   进程使用的CPU时间总计,单位1/100秒
COMMAND    命令名/命令行
PS:下面是未显示出来的: PPID 父进程id UID 进程所有者的用户id RUSER Real User Name GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? P 最后使用的CPU,仅在多CPU环境下有意义 SWAP 进程使用的虚拟内存中,被换出的大小,单位kb. CODE 可执行代码占用的物理内存大小,单位kb DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数。 nTH 线程数量 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志 ENVIRON 环境变量

2.2 top使用的一些参数项

top使用格式:
top -[d] | [p] | [q] | [c] | [S] | [s] | [n]
参数的含义如下:
d: 指定没两次屏幕信息刷新之间的时间间隔。
p:通过指定某个监控项的进程ID来仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。
S:指定类继模式
s:使用top在安全模式下运行。
i:使用top不显示任何闲置或者僵尸进程
c:显示整个命令行而不是命令名。

PS:下面使直接使用top后会用到的命令:
f或者F:从当前显示中添加或者删除项目。
o或者O:改变显示项目的顺序
l:切换显示平均负载和启动时间信息。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
T:根据时间/累计时间进行排序。
W:将当前设置写入~/.toprc文件中。

2.3 top视图

  直接使用top进入基本视图,在基本视图中按1可以监控每个逻辑CPU的概况。

    敲击键盘“b”(打开/关闭加亮效果)这时使视图2,具体效果如下:  

     这里会把运行的进程进行加亮,也可以敲击y来打开或者关闭运行状态进程的加亮效果。

  敲击键盘‘x’(打开/关闭排序列的加亮效果),top视图变换如下:

     可以看到现在是按"%CPU"进行排序的,可以按”shift+>”或者”shift+<”左右改变排序序列.

  在top基本视图中,敲击”f”进入另一个视图,在这里可以编辑基本视图中的显示字段:

   用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项。

 3.iostat命令

  iostat是IO statistics(输入/输出统计)的缩写,iostat工具会对系统的磁盘活动进行监控。它的特点是汇报磁盘活动的统计情况,同时也会汇报出CPU使用的情况。但是iostat不能对单个进程做深入的分析,仅能够对系统的整体情况进行分析。

iostat的安装:
yum install sysstat

  如果直接在命令行敲击iostat的话可以看到所有设备的信息,如下图所示:

上面的图中所显示的一些信息的具体含义如下:
第一行显示的是系统的一些基本信息
下面这行是CPU的属性值相关的说明:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。

PS:注意
1.如果%iowait的值比较高,可能表示硬盘存在IO瓶颈
2.如果%idle的值比较高,表示CPU目前比较空闲
3.如果%idle的值很高,但是系统的响应比较慢,可能是CPU在等待分配内存,这时可以考虑加大内存的容量
4.如果%idle的值持续低于10,那么可能是CPU的处理能力相对比较低下,系统中最需要解决的资源是CPU

在下面那行是磁盘相关的属性信息:
tps:该设备每秒的传输次数
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;
用法:iostat [选项] [<时间间隔>] [<次数>]

参数:
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况



下面是可能会用到的一些简单的命令:
#定时显示所有的信息,每隔2秒刷新显示3次
iostat 2 3
#指定磁盘的信息
iostat -d /dev/vda
#显示tty和cpu的信息
iostat -t
#以M为单位显示所有的信息
iostat -m
#查看TPS和吞吐量信息
iostat -d -k 1 1
#查看设备使用率(%util)、响应时间(await)
iostat -d -x -k 1 1

  下面是查看设备使用率响应时间的图:

rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s:    每秒完成的读 I/O 设备次数。即 rio/s
w/s:    每秒完成的写 I/O 设备次数。即 wio/s
rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s:  每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
r_await:每个读操作平均所需的时间,不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
w_await:每个写操作平均所需的时间,不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比。

如果%util接近100%,说明产生的IO青丘数量太多了,IO系统已经负载了,该磁盘可能存在瓶颈。
如果svctm比较接近await,说明IO几乎没有等待时间。
如果await远大于svctm,说明IO队列太长了,IO响应太慢,需要进行必要的优化。
如果avgqu-sz比较大,也说明有一定量的IO在等待。

 4.vmstat命令

  vmstat可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存的使用,虚拟内存交换的情况,IO读写情况。总结来说就是用来获取有关进程、虚存、页面交换空间以及CPU活动信息,我们可以使用这些信息来观察系统负载的情况。

#vmstat的用法
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]

-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会出现如下图所示的数据:

#procs下面的参数含义如下:
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

#memory下面的参数含义如下:
swpd   切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free   当前的空闲页面列表中内存数量(k表示)
buff   作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache  作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。

#swap下面的参数含义如下:
si  由内存进入内存交换区数量。
so  由内存交换区进入内存数量。

#io下面的参数含义如下:
bi  从块设备读入数据的总量(读磁盘)(每秒kb)。
bo  块设备写入数据的总量(写磁盘)(每秒kb)。
PS:这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

#system下面的参数含义如下:
显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs 列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。

#cpu下面的参数含义如下:
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比

 5.iotop命令

  iotop命令可以用来监控磁盘IO的状况。与top的UI类似。

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。

Total DISK READ/Total DISK WRITE 
一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。
Actual DISK READ/Actual DISK WRITE
表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。

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

 

标签:显示,百分比,检测,汇总,内存,linux,进程,磁盘,CPU
来源: https://www.cnblogs.com/coffeeakai/p/15259051.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有