Linux top 命令?这里帮你拆解一下

系统 Linux
操作系统把内存中不用的数据存到硬盘的交换区,腾出内存来让别的程序运行。因此,开启 swap 会一定程度的引起 I/O 性能下降 (阿里服务器默认不开)。

 一、内容介绍

top 命令运行图:

***行——基本信息

  1. load average: 

load average 表示系统负载均值,使用 top 或 uptime 可以查看到负载均值的信息,三个数值分表表示 1 分钟内 、5 分钟内 、 15 分钟内的系统负载均值,要理解这三个数值的含义,首先要了解系统的 “核数”

系统的核数 = CPU1 x CPU1的核数 + CPU2 x CPU2的核数 + CPUn x CPUn的核数 + ……

更清楚的讲,在 Linux 系统中输入命令grep -c 'model name' /proc/cpuinfo,即可得到核数。

回到负载均值,负载均值的饱和值等于系统的核数, 所以, 根据 load average 观察系统负载首先要看系统中共有多少 "核", 单处理器单核的饱和值为 1, 单处理器双核的饱和值为 2, 双处理器单核的饱和值也为 2.

理解负载均值的最经典的例子是把一个 CPU 的核当做一座单行单向桥, 多核即为多行路单向桥. 如图:

假定, 目前系统是单核系统, 根据上面的描述, 它的负载饱和值为 1. 这种条件下, 各种数值的含义如下:

0.00 表示桥上没有任何车流, 非常畅通

0.50 表示桥上有***承载量一半的车流, 也比较流畅.

1.00 表示桥上已经达到了***承载量, 如果再有车来, 可能就要稍等才能上桥了, 这种情况下, 车速都会很慢, 往往都会造成负载均值继续上升.

1.70 表示桥已经达到***负载, 且还有相对于桥***负载 70% 的车辆等待上桥, 这个时候的系统, 已经要不堪重负了.

在实际应用中, 重点关注 5 分钟,15 分钟的负载均值,当达到 0.7 时,就需要调查原因了。

2. 任务信息

僵尸进程:表示已经终止,但仍然保留一些信息的进程。其等待父进程调用 wait(),就可以从内存中完全移除。 将是进程无法使用 kill 清理。如果要手动清理僵尸进程,需要找到其父进程,kill 掉父进程后,LInux 的 init 进程将接管该僵尸进程 (linux 中所有的子进程都需要有父进程,当父进程被 kill 后,其所有子进程将过继给 init 进程),init 进程隔一段时间去调用 wait(), 来清除僵尸进程。

3. CPU 使用情况

4. 物理内存使用情况

buff/cache:

buffers 和 cache 都是内存中存放的数据,不同的是,buffers 存放的是准备写入磁盘的数据,而 cache 存放的是从磁盘中读取的数据

在 Linux 系统中,有一个守护进程 (daemon) 会定期把 buffers 中的数据写入的磁盘,也可以使用 sync 命令手动把 buffers 中的数据写入磁盘。使用 buffers 可以把分散的 I/O 操作集中起来,减少了磁盘寻道的时间和磁盘碎片。

cache 是 Linux 把读取频率高的数据,放到内存中,减少 I/O。Linux 中 cache 没有固定大小,根据使用情况自动增加或删除。

# 手动把buffers写入硬盘并清空cachesync && echo 3 > /proc/sys/vm/drop_caches

5. 交换区使用情况

Swap(内存交换区):

是硬盘上的一块空间。在内存不足的情况下,操作系统把内存中不用的数据存到硬盘的交换区,腾出内存来让别的程序运行。因此,开启 swap 会一定程度的引起 I/O 性能下降 (阿里服务器默认不开)。

6. 进程详细信息

二、灵活使用 top

1. 命令行式使用

-b:以批处理模式操作 这种方式可以把 top 输出的内容以可读的形式写入文件top -b >> top.txt

-c:显示完整的命令行 (COMMAND), 想查看进程执行的具体位置时,非常有用

-d:屏幕刷新间隔时间 top -d 1: 表示每隔一秒刷新一次

-s:使用保密模式

-S:指定累积模式

-i:不显示任何闲置或者僵死进程

-u<用户名>:指定用户名

-p<进程号>:指定进程

-n<次数>:指定循环显示的次数,到了次数自己退出。

2. 交互式使用

top 命令显示系统实时状态,支持交互操作。执行 top 命令,显示系统状态界面(同时也是交互界面),输入交互命令:

1:查看 CPU 每个核的使用情况

h:显示帮助画面,给出一些简短的命令总结说明

k:终止一个进程

i:忽略闲置和僵死进程,这是一个开关式命令

q:退出程序

r:重新安排一个进程的优先级别

S:切换到累计模式

s:改变两次刷新之间的延迟时间(单位为 s),如果有小数,就换算成 ms。输入 0 值则系统将不断刷新,默认值是 5s

l:切换显示平均负载和启动时间信息

m:切换显示内存信息

t:切换显示进程和 CPU 状态信息

c:切换显示命令名称和完整命令行

M:根据驻留内存大小进行排序

P:根据 CPU 使用百分比大小进行排序

T:根据时间 / 累计时间进行排序

w:将当前设置写入~/.toprc 文件中。

责任编辑:武晓燕 来源: segmentfault
相关推荐

2018-04-11 08:25:11

Linux内存方法

2019-12-04 12:28:24

TOP命令Linux

2023-05-09 08:25:26

Gaussdb数据库开源数据库

2022-09-21 12:01:22

消息队列任务队列任务调度

2023-11-23 17:02:34

LinuxSED工具

2018-04-09 15:36:01

数据库Oracle数据复制

2014-07-24 11:37:54

LinuxTop命令

2023-12-27 14:08:00

LinuxTop命令工具

2009-10-27 16:34:02

linux top命令

2018-08-08 09:30:29

服务器知识Linux系统

2011-08-23 10:11:10

LinuxTop命令

2022-03-25 09:39:50

LinuxLinux top

2014-06-04 10:04:11

htoptop

2012-05-09 10:52:37

Linux监控命令

2022-12-25 18:58:53

架构RabbitMQ

2019-10-23 11:56:47

top命令Linux

2018-08-21 09:00:30

Linuxtop命令

2013-11-25 15:43:14

Linux命令top命令

2010-03-17 17:33:47

云计算

2022-03-24 13:36:18

Java悲观锁乐观锁
点赞
收藏

51CTO技术栈公众号