Linux系统监控、诊断工具之top命令详解 | 张戈博客

  • 时间:
  • 浏览:11
  • 来源:我爱搬资源网 - 专注共享唐朝博客活动

暂时也能 写作灵感,就架构设计 怎样才能让 Linux基础知识好了,方便个人查阅,同时也是温故而知新嘛~!

在张戈博客,同样很有用的知识性博文还有以下几篇,也许你也会比较感兴趣:

详解Linux系统的CPU负载均值

教你怎样才能查看Linux的CPU负载

Linux服务器的程序查看命令详解

Llinux文件目录权限及chmod命令简析

Linux系统内存监控、性能诊断工具vmstat命令详解

Ps:更多相关博文,请访问系统运维 或 站内搜索,当然有怎样才能让 Linux相关知识的需求也欢迎留言。

接触 linux 的人对于 top 命令怎样才能让我太少 陌生(不同系统名字怎样才能让不一样,如 IBM 的 aix 中叫 topas ),它的作用主要用来监控系统实时负载率、程序的资源占用率及其它各项系统清况 属性是不是 正常。

下面亲戚亲戚朋友先来看张 top 命令的截图:

(1)系统、任务统计信息:

前 8 行是系统整体的统计信息。第 1 行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

01:06:48 当前时间
up 1:22 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.06, 0.30,0.48 系统负载,即任务队列的平均长度。

一俩个 多数值分别为 1分钟、5分钟、15分钟前到现在的平均值。注意:什儿 俩个 多值可不时需用来判定系统是不是 负载指在问题——怎样才能让值持续大于系统 cpu 个数,就时需优化你的程序怎样才能让架构了。

(2)程序、 cpu 统计信息:

第 2~6 行为程序和CPU的信息。当有多个CPU时,哪几个内容怎样才能让会超过两行。内容如下:

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 Hardware IRQ 即“中断请求”的意思。
0.0% si Software IRQ

(3)最后两行为内存信息:

Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。

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

该数值即为哪几个内容已指在于内存中的交换区的大小。

相应的内存再次被换出时可无须再对交换区写入。

PS:怎样才能计算可用内存和已用内存?

除了 free -m 之外,也可不时需看 top:

Mem:    255592k total,   167568k used,    83024k free,    23068k buffers
Swap:   524230k total,        0k used,   524230k free,    85724k cached

3.1  实际的程序可用内存数为何算呢?

The answer is: free + (buffers + cached)

83024k + (23068k + 85724k) = 198816k

3.2  程序已用内存数又为何算呢?

The answer is: used – (buffers + cached)

167568k – (23068k + 85724k) = 56776k

3.3  为何判断系统是不是 内存指在问题呢?

怎样才能想要的 swap used 数值大于 0 ,基本可不时需判断怎样才能让遇到内存瓶颈了,要么优化你的代码,要么加内存。

3.4  buffer 与cache 的区别

A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use 从程序深度1来看,buffers/cached 是等于可用的,怎样才能让buffer/cached是为了提高文件读写的性能,当程序需在用到内存的随后 ,buffer/cached会更快地被回收。

什么都有有从程序的深度1来说,【可用内存】=【系统free memory】+【buffers】+【cached】

buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.

cached是用来给文件做缓冲。

那什么都有有我说:buffers是用来存储,目录里边有哪几个内容,权限等等。而cached直接用来记忆亲戚亲戚朋友打开的文件,怎样才能想要想知道他是删剪都是真的生效,想要试一下,先后执行两次cat 一俩个 多比较大的日志文件,比如nginx的access.log,你就可不时需明显的感觉到第二次的开打的速度快什么都有有。

怎样才能让Linux将你暂时不使用的内存作为文件和数据缓存,以提高系统性能,当你时需哪几个内存时,系统会自动释放(不像windows那样,即使你有什么都有有空闲内存,他也要访问一下磁盘中的pagefiles)

(4)程序信息区:

统计信息区域的下方显示了各个程序的删剪信息。首先来认识一下各列的含义。

序号 列名 含义
a PID 程序id
b PPID 父程序id
c RUSER Real user name
d UID 程序所有者的用户id
e USER 程序所有者的用户名
f GROUP 程序所有者的组名
g TTY 启动程序的终端名。删剪都是从终端启动的程序则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 程序使用的CPU时间总计,单位秒
m TIME+ 程序使用的CPU时间总计,单位1/30秒
n %MEM 程序使用的物理内存百分比
o VIRT 程序使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 程序使用的虚拟内存中,被换出的大小,单位kb。
q RES 程序使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的累积(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 程序清况 。

D=不可中断的睡眠清况

R=运行

S=睡眠

T=跟踪/停止

Z=僵尸程序
x COMMAND 命令名/命令行
y WCHAN 若该程序在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

(5)查看指定列

默认清况 下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。

可不时需通过下面的快捷键来更改显示内容:

5.1 f 键选取显示内容

通过 f 键可不时需选取显示的内容。按 f 键随后 会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键选取。

5.2 o 键改变显示顺序

按 o 键可不时需改变列的显示顺序。按小写的 a-z 可不时需将相应的列向右移动,而大写的 A-Z 可不时需将相应的列向左移动。最后按回车键选取。

5.3 F/O 键将程序按列排序

按大写的 F 或 O 键,怎样才能让按 a-z 可不时需将程序按照相应的列进行排序。而大写的 R 键可不时需将当前的排序倒转。

(6)常用交互命令

从使用深度1来看,熟练的掌握哪几个命令比掌握选项还重怎样才能才能让 。哪几个命令删剪都是单字母的,怎样才能让在命令行选项中使用了s选项,则怎样才能让其中怎样才能让 命令会被屏蔽掉。

Ctrl+L 擦除怎样才能让重写屏幕。
h怎样才能让? 显示帮助画面,给出怎样才能让

简短的命令总结说明。
k 终止一俩个

多程序。系统将提示用户输入时需终止的程序PID,以及时需发送给该程序哪几个样的信号。一般的终止程序可不时需使用15信号;怎样才能让也能正常开始了那就使用信号9强制开始了该程序。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死程序。这是一俩个

多开关式命令。
q 退出程序。
r 重新安排一俩个

多程序的优先级别。系统提示用户输入时需改变的程序PID以及时需设置的程序优先级值。输入一俩个

多正值将使优先级降低,反之则可不时需使该程序拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。怎样才能让有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。时需注意的是不是

则设置太小的时间,很怎样才能让会引起不断刷新,从而根也能



不及看清显示的清况

,怎样才能让系统负载也会大大增加。
f怎样才能让F 从当前显示中去掉

怎样才能让删除项目。
o怎样才能让O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示程序和CPU清况

信息。
c 切换显示命令名称和删剪命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐妙招。

(7)最后的技能:top 命令小技巧

1、输入大写P,则结果按CPU占用降序排序。
2、输入大写M,结果按内存占用降序排序。
3、按数字 1 则可不时需显示所有CPU核心的负载清况

。
4、top -d 5    每隔 5 秒刷新一次,默认 1 秒
5、top -p 4330,4358    监控指定程序
6、top -U johndoe    ‘U’为 真实/有效/保存/文件系统用户名。
7、top -u 30    ‘u’为有效用户标识
8、top -bn 1    显示所有程序信息,top -n 1 只显示一屏信息,供管道调用
9、top -M   #show memory summary in megabytes not kilobytes
10、top -p 23097 -n 1 -b    # -b 除理输出控制字符,管道调用再次总出

乱码
11、top翻页:top -bn1 | less

12、增强版的 top:htop ,一俩个 多更加强大的交互式程序管理器: