- system:显示采集间隔内发生的中断数
in:表示在某一时间间隔中观测到的每秒设备中断数。
cs:表示每秒产生的上下文切换次数。
- cpu:显示CPU的使用状态
us:显示了用户进程消耗的CPU时间百分比。
分析:(us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,则需要考虑进行优化。)
sy:显示了内核进程消耗的CPU时间百分比。
分析:(sy的值比较高时,说明内核消耗的CPU资源很多。如果us+sy大于80%。说明可能存在CPU资源不足的情况。)
id:显示了CPU处于空闲状态的时间百分比。
wa:显示了i/o等待所占用的CPU时间百分比,wa值越高,说明i/o等待越严重。
分析:(wa的参考值为20%,如果wa值超过20%,说明i/o等待严重。原因可能是磁盘大量随机读写造成,也可能是磁盘或者磁盘控制器的宽带瓶颈造成的。)
uptime是监控系统性能最常用的一个命令。主要用来统计系统当前的运行状况。
以下这条命令输出的信息依次为:系统时间、系统从开机开始运行的时间、系统目前有多少登录用户、系统在一分钟内、五分钟内、15分钟内平均负载。
[root@centos7 ~]# uptime
19:51:32 up 2:20, 2 users, load average: 0.00, 0.01, 0.04
需要注意的地方是load average这个输出值,这三个值的大小,一般不能大于系统CPU的个数。
例如,本书初中系统有两个CPU,如果三个数值长期大于2,说明CPU很繁忙,负载很高。相反,如果这个数值远远小于2,说明CPU很空闲。
这个命令是一个CPU实时状态监控工具。是通过/proc/stat里面的状态信息来进行统计的,他可以查看多核CPU中每个计算核的统计数据。
语法:mpstat [-P {cpu|ALL}] [internal] [count]
参数:
[-P {cpu|ALL}]:表示监控哪个CPU,第一颗CPU数值为0
internal:采集的间隔时间
count:采集的次数
[root@centos7 ~]# mpstat 3 2
Linux 3.10.0-1160.el7.x86_64 (centos7) 2022年01月04日 x86_64 (2 CPU)
20时06分23秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
20时06分26秒 all 0.17 0.00 0.17 0.00 0.00 0.00 0.00 0.00 0.00 99.67
20时06分29秒 all 0.00 0.00 0.17 0.00 0.00 0.00 0.00 0.00 0.00 99.83
平均时间: all 0.08 0.00 0.17 0.00 0.00 0.00 0.00 0.00 0.00 99.75
以下为输出中每列的含义:
-
CPU:处理器的ID
-
%usr:显示用户进程消耗的CPU时间百分比
-
%nice:显示了运行正常进程所消耗的CPU时间百分比
-
%sys:显示了系统进程消耗的CPU时间百分比
-
%iowait:显示了i/o等待所占用的CPU时间百分比
-
%irq:显示了硬中断时间占用的CPU时间百分比
-
%soft:显示了软中断时间占用的CPU时间百分比
-
%steal:显示了在内存相对紧张的环境下page in强制对不同的页面进行的steal操作
-
%guest:显示了运行虚拟处理器时CPU花费时间的百分比
-
%gnice:显示了运行带有nice优先级的虚拟CPU所花费的时间百分比
-
%idle:显示了CPU处在空闲状态的时间百分比
分析 :当%idle值较低时,应该是CPU不足的问题。当%iowait数值较高时,应该是当前负载下i/o子系统出现了问题。
===============================================================
内存性能分析的常用工具有free、smem等。
free是监控Linux内存使用状况最常用的指令。
[root@centos7 ~]# free
total used free shared buff/cache available
Mem: 4026156 243776 3411332 11868 371048 3550276
Swap: 2097148 0 2097148
此命令输出中显示了系统的各种内存状态,包括了物理内存和swap。
以上信息每列的内容分别为总内存(total)、使用内存(used)、空闲内存(free)、共享内存(shared)、系统缓存(buff/cache)、可用内存(available)
分析:一般来说,可用内存大于70%时,说明资源非常充足;小于20%时,说明资源紧缺,可扩容内存。
这个命令可以显示内存使用情况报告,他可以提供多种报告。
这个命令需要单独安装:
[root@centos7 ~]# yum -y install epel-release
[root@centos7 ~]# yum -y install smem python-matplotlib python-tk
语法:smem [参数]
-k:用来显示内存单位
-p:以百分比的形式显示内存占用
-u:显示每个用户占用的内存信息。
-s:表示排序。
[root@centos7 ~]# smem -k -s uss
PID User Command Swap USS PSS RSS
1024 root /sbin/agetty --noclear tty1 0 172.0K 204.0K 848.0K
965 root /usr/sbin/irqbalance --fore 0 376.0K 432.0K 1.3M
860 root /sbin/auditd 0 544.0K 570.0K 1.1M
522 root /usr/sbin/lvmetad -f 0 596.0K 640.0K 1.5M
上面相关的内容最后几列的内容分别是:
-
RSS:是最常用的内存指标,表示进程占用的物理内存大小。这个值中包含了共享内存
-
PSS:所有使用某共享库的程序均分该共享库占用的内存嗯。简单来说就是将共享内存的大小进行平均后,分摊到各个进程。
-
USS:建成独自占有的内存,只计算进程独自占用的内存大小,不包含任何共享的部分。嗯呢。东莞r PS
通过这个命令,可以清晰的看到每个进程占用了多少内存资源,以及占用是否合理。
===============================================================
磁盘性能分析的常用工具有iotop、iostat等
这是一个用来监视磁盘i/o使用状况的top类工具,可监测到某一个程序使用的磁盘i/o的实时信息。
选项:
-p:指定进程ID,显示该进程的i/o情况
-u:指定用户名,显示该用户所有进程的i/o情况
-P:只显示进程
-k:表示以千字节显示
-t:表示在每一行前添加一个当前时间
iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 22
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
1027 be/4 polkitd 0.00 B/s 0.00 B/s 0.00 % 0.00 % polkitd --no-debug
4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H]
517 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % lvmetad -f
这个命令是对系统的磁盘i/o操作进行监视。主要显示磁盘读写操作的统计信息。
yum -y install sysstat
安装完成后,系统将会多出三个命令:iostat、sar、mpstat
[root@centos7 ~]# iostat -d
Linux 3.10.0-1160.el7.x86_64 (centos7) 2022年01月05日 x86_64 (2 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
存中…(img-bg515tOt-1714524928176)]
给大家整理的电子书资料:
[外链图片转存中…(img-9iZ4AJrm-1714524928176)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!