top命令是linux系统中比较常用的一个命令了,通常用来监控服务器整体的运行性能,我们可以通过top命令动态输出的数据来判断当前系统的健康状况,包括系统负载、CPU占比、内存使用率等数据。
那么要想搞清楚top命令如何监控Linux系统性能的前提是我们需要知道top命令输出的各项数据的意思,根据这些数据来做下一步的判断。
我们先来看top命令的正常结果输出,如下图所示:
我们可以把top命令输出分为图中红色线框中的两大部分。下面我们挨个讲解这两部分都是什么意思,以便我们可以了解每一个参数以及他对应的数据值是否健康。
大家可以把Linux系统想象成一个去医院体检的人,而top输出的就是这份体检报告,我们需要根据这份体检报告来判断这个人的各项参数指标是否属于正常范围值,也就是这个人是否健康。
load average
这个参数代表的是Linux系统的平均负载,后面三个参数的值代表的是系统一分钟、五分钟、十五分钟三个时间段的平均负载,数字越大说明服务器的压力越大。
那么到底多少是属于健康范围值之内的呢?根据你的CPU核数来定,比如你是2核的,那么健康值就是0~2,四核的就是0~4。因此大家可以根据这个来判断Linux系统的当前负载。
Tasks
可以看到总共80个参数,其中正在运行的有1个,休眠中的有79个,0个停止的进程,0个僵尸进程。
这块的数据基本上没什么太大的异常,基本上同时运行的任务数肯定很少,其他的都在等待,没有停止的进程和僵尸进程就好。
CPU
这块就是CPU的详细信息了,各个字段解释如下:
-
0.5 us:用户空间占用CPU百分比
-
0.2 sy:内核空间占用CPU百分比
-
0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
-
99.3 id:空闲CPU百分比
-
0.0 wa:等待输入输出的CPU时间百分比
-
0.0%hi:硬件CPU中断占用百分比
-
0.0%si:软中断占用百分比
-
0.0%st:虚拟机占用百分比
这块数据还是比较明显的,空闲CPU占比99.3%,所以系统压力还是很小的,当然你的系统也是浪费不少资源了。
内存
KiB内存:总共3881688 kb,空闲20032 kb,已使用1536684 kb,缓冲区2144772,那么大家知道可用内存是多少吗?可用内存=空闲内存+缓冲区内存。
KiB交换区:交换区总量0,空闲0,已使用0,缓冲区2076008,大家要注意的一点就是缓冲区不要有被使用,否则系统内存属于不够用的状态。
进程区
进程区代表的是当前系统正在运行的进程的列表,看这个列表的前提是你需要搞清楚表头的每一列代表的意思。
-
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:执行该进程的命令
知道这些字段的意思后,大家就可以查看这个列表里各个进程的情况了,重点关注的参数就是当前进程的CPU占比以及吃了多少内存。
以上就是我对“如何根据Top命令查看Linux系统性能”问题的回答了,实际工作过程中我们还需要结合其他命令和Top命令一起更深一步诊断Linux系统的运行情况。
我是【java架构设计】,如果我的回答对您有帮助,欢迎点赞、转发。关注我,持续为您提供科技领域优质内容!
如何检查Linux的内存使用状况?
第一种,在linux下查看内存使用情况的最简单方法是使用free命令,free命令可以显示系统中物理内存和交换内存的总量,还可以显示内核所用的buffer和caches总量。在我的系统中运行linux命令,显示结果在下面图中所示。
其中第一行显示系统物理内存的使用情况,第二行显示的是swap交换内存的使用情况。
total列表示系统中内存的总量,
used列表示已用内存总量,该列的值可通过如下公式获得:used = total - free - buffers – cache,free列表示空闲内存容量,
shared为共享内存已经使用的容量,
buff/cache为buffers和cache所用总量的总和,其中buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量。
available列为估算的在不需要swapping内存的情况下,可用物理内存容量。
这里free默认的显示单位是Kbytes,可以用 -b(bytes), -m(Mbytes),-k(Kbytes)或者-g(Gbytes) 来置顶要显示的单位。实际中更常用的是使用-h来显示易于阅读的输出。
在我的系统中运行free -h命令,显示结果如下图所示。
需要注意的是swap 的使用量。一般来说, swap 的used最好是0,最多不要超过20%。如果您发现 swap 的使用量超过 20% ,那么说明系统的物理内存已经严重不足了。 更多关于free的用法可以通过free -help命令查看或者man free查看更加详细的信息。
第二种,查看linux内存使用情况的方法是使用top命令,top输出的第三行和第四行显示当前系统物理内存和交换内存的使用情况,top命令还可以查看每个进程的内存使用率,在我的系统中运行top命令的显示结果如下图所示。
第三种,free和top命令显示的内存信息都是通过读取/proc/meminfo文件生成的,所以我们也可以通过查看/proc/meminfo文件来查看系统的内存使用情况。
以上介绍的方法都是在命令行环境下查看,也可以通过图形界面查看系统的内存使用情况,图形界面查看内存使用情况比较常用的工具是System Monitor。一般发行版系统都会自带这个工具。
还有一些命令也可以显示内存的使用情况,比如ps、vmstat、memstat等。但这不是这些工具的主要作用。这里不做详细阐述