Linux性能优化之top

Linux性能优化之top

1 top命令用法

Ubuntu18.04:

top -h
  procps-ng 3.3.12
Usage:
  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

嵌入式Linux:

top -h
top: invalid option -- 'h'
BusyBox v1.31.1 (2020-07-20 18:00:12 CST) multi-call binary.

Usage: top [-b] [-n COUNT] [-d SECONDS]

Provide a view of process activity in real time.
Read the status of all processes from /proc each SECONDS
and display a screenful of them.
Keys:
        N/M/P/T: sort by pid/mem/cpu/time
        R: reverse sort
        Q,^C: exit
Options:
        -b      Batch mode
        -n N    Exit after N iterations
        -d SEC  Delay between updates

top命令实际上有两种模式的选项:命令行选项和运行时选项。命令行选项决定top如何显示其信息。运行时选项对进程显示方式进行控制。

2 top命令行选项

选项	  说明
-d delay  更新统计信息时间间隔。uint:second
-n N	  更新统计信息的总次数
-b	      通常,top只显示单屏信息,超出该屏幕的进程将不显示。该选项会显示全部进程。若将top输出的信息保存到文件或输出给另外一个命令处理,则该选项会很有用
-p pid	  通过指定监控进程ID来仅仅监控某个进程的状态
-i	      使top不显示任何闲置或者僵死的进程

3 top运行时命令选项

选项	说明
N	根据pid大小进行排序
M	根据驻留内存大小进行排序
P	根据进程使用CPU百分比大小进行排序
T	根据时间/累计时间进行排序
1(数字1)	切换CPU使用率按独立显示还是按总量显示
I(大写字母i)	切换显示平均负载和启动时间信息

4 top视图含义

第一行:系统状态
19:13:28 —— 当前系统时间
8 days, 1:51 —— 系统已运行时间
5 users —— 当前有5个用户登录系统
load average: 0.00, 0.00, 0.00 —— load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按照特定的算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:进程总体状态
任务: 369 total, 1 running, 290 sleeping, 1 stopped, 0 zombie
系统现在共有369个进程,其中运行1个,290个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态
0.0% us — 用户空间占用CPU的百分比。
0.1% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
99.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态
4002332 total —— 物理内存总量(4GB)
533856 free —— 空闲内存总量(0.5G)
1169564 used—— 使用中的内存总量(1G)
2298912 buff/cache —— 缓存的内存量(2.5G)

第五行:swap交换分区
969960 total —— 交换区内存总量(947M)
937448 free —— 空闲交换区总量(915M)
32512 used —— 使用的交换区总量(31M)
2517504 avail Mem —— 缓冲的交换区总量(2G)

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:533856 + 2298912 + 2517504 = 4.7GB。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行是空行

第七行以下:各进程(任务)的状态监控
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 — 进程名称(命令名/命令行)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值