Linux服务器CPU占有率统计,服务器负载?top命令/CPU使用率/load average计算方法

1c0a446d65ef033580b8168a5275a977.png

2019年4月23日

当我们学会了用top命令了解系统的完成状态,关注变量的实时变化。

要理解这一点,就需要了解以下变量说明。

top 命令 load average 详解

abfd88d23c9fc28ea75f653e7b4dbf84.png

以下是如何使用它的详细说明 ▼top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48

Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

Mem: 191272k total, 173656k used, 17616k free, 22052k buffers

Swap: 192772k total, 0k used, 192772k free, 123988k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd

14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top

1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init

2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0统计信息区域的前5行,是整个系统的统计数据。

第1行是任务队列信息,与uptime命令的执行结果相同。

其内容如下:01:06:48 当前时间

up 1:22 系统运行时间,格式为时:分

1 user 当前登录用户数

load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。

3个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第2和第3行是进程和CPU信息。

当有多个CPU时,此内容可能超过2行。内容如下:Tasks: 29 total 进程总数

1 running 正在运行的进程数

28 sleeping 睡眠的进程数

0 stopped 停止的进程数

0 zombie 僵尸进程数

Cpu(s): 0.3% us 用户空间占用CPU百分比

1.0% sy 内核空间占用CPU百分比

0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比

98.7% id 空闲CPU百分比

0.0% wa 等待输入输出的CPU时间百分比

0.0% hi

0.0% si

以下是最后两2行内存信息:Mem: 191272k total 物理内存总量

173656k used 使用的物理内存总量

17616k free 空闲内存总量

22052k buffers 用作内核缓存的内存量

Swap: 192772k total 交换区总量

0k used 使用的交换区总量

192772k free 空闲交换区总量

123988k cached 缓冲的交换区总量。

内存的内容被换出到交换区域,然后又被交换到内存中,但尚未被覆盖使用过的交换区域。

此值是内容已存在于内存中的交换区域的大小。

当再次交换相应的存储器时,不再需要写入交换区域。

进程的详细信息,显示在每个进程信息区域的统计区域下方。

首先,让我们来了解每个列的含义。

列名含义PID 进程id

PPID 父进程id

RUSER Real user name

UID 进程所有者的用户id

USER 进程所有者的用户名

GROUP 进程所有者的组名

TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?

PR 优先级

NI nice值。负值表示高优先级,正值表示低优先级

P 最后使用的CPU,仅在多CPU环境下有意义

%CPU 上次更新到现在的CPU时间占用百分比

TIME 进程使用的CPU时间总计,单位秒

TIME+ 进程使用的CPU时间总计,单位1/100秒

%MEM 进程使用的物理内存百分比

VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。

RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

CODE 可执行代码占用的物理内存大小,单位kb

DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

SHR 共享内存大小,单位kb

nFLT 页面错误次数

nDRT 最后一次写入到现在,被修改过的页面数。

S 进程状态。

D=不可中断的睡眠状态

R=运行

S=睡眠

T=跟踪/停止

Z=僵尸进程

COMMAND 命令名/命令行

WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

Flags 任务标志,参考 sched.h

linux load average 调试说明

在查看了top命令所显示的状态后,需要依据其来做优化,但top命令显示的只是表象,所以我们可以通过iostat或者vmstat命令进一步的观察。

vmstat 查看系统负载vmstat

procs -------memory-------- ----swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0

procsr 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需提高cpu。

b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

cpu 表示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处在空闲状态的时间百分比。

以下文章说明了Linux Load Average过高多少合适?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值