首先介绍top中一些字段的含义:
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
1、除了自身进程的共享内存,也包括其他进程的共享内存 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap out后,它将会降下来
1、数据占用的内存。如果top没有显示,按f键可以显示出来。 2、真正的该程序要求的数据空间,是真正在运行中要使用的。
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:
s – 改变画面更新频率 l – 关闭或开启第一部分第一行 top 信息的表示 t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示 m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示 N – 以 PID 的大小的顺序排列表示进程列表 P – 以 CPU 占用率大小的顺序排列进程列表 M – 以内存占用率大小的顺序排列进程列表 h – 显示帮助 n – 设置在进程列表所显示进程的数量 q – 退出 top s – 改变画面更新周期
%CPU 上次更新到现在的CPU时间占用百分比 l TIME 进程使用的CPU时间总计,单位秒 m TIME+ 进程使用的CPU时间总计,单位1/100秒 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 任务标志,参考 的支持。
O
)排序。
按 (
Shift+O
) 通过字段字母对字段进行排序,例如按a
用 PID 对进程进行排序的字母 (Process ID
)。使用top对进程 ID 进行排序
键入任意键以返回到已排序的主窗口
PID
顺序如下图所示。按q
退出退出窗口。
使用带有
u
选项的top命令将显示特定User
过程细节。
按数字1可以显示每个CPU核心使用情况 |
根据驻留内存大小进行排序(注意大小写,下同)大写的 R 键可以将当前的排序倒转(下同) |
根据CPU使用百分比大小进行 |
根据时间/累计时间进行排序 |
切换显示命令名称和完整命令行 |
忽略闲置和僵死进程。这是一个开关式命令。 |
更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,空格确定显示或者取消显示 a是切换 |
按
c
运行 top 命令中的选项,它将显示正在运行的进程的绝对路径。或直接用以下指令
屏幕刷新间隔
默认情况下,屏幕刷新间隔为
3.0
秒,同样可以改变按d
运行 top 命令中的选项并根据需要更改它
找到后可以终止进程
PID
按k
在不退出top窗口的情况下运行 top 命令的选项。
你可以使用
r
更改进程优先级的选项也称为 Renice。
将运行的 top 命令结果输出保存到文件
/root/.toprc
使用以下命令。
按 (
Shift+O
) 对进程内存使用进行排序。
top输出保持刷新,直到您按
q
。使用以下命令 top 命令将在重复 10 次后自动退出。
进入top后,按下o后,会让你输入过滤条件,输入
COMMAND=nginx
,现在就只剩下模糊匹配nginx
关键字的进程了
打开top,会有下面一大堆的空闲进程显示着,有点干扰我们的视线。只要按下i,直接过滤掉空闲进程
对文件名含有空白字符时,使用-0 参数处理
使用-i 或者-I 实现,将所有.js文件都加上.backup 后缀 , -I {} 表示将后面命令行的{}替换成前面解析出来的参数
-n 表示对文件中的数值列进行排序
-r 表示对文件内容逆排序
查看文件内容,以页的形式输出到屏幕,支持直接跳转行功能
替换3-6行的匹配字段
以每一行为一个处理对象,从每一行剪切字节、字符和字段。
对于中文内容的文件,使用-b 会出现乱码,需要添加-n参数,-c 参数与-nb 类似,更建议使用-c
\$1..\$n表示第几列---$0表示整行,即整个文本 格式化输出: awk '{print "%-8s %-8s", \$1,\$2}' file 格式与 c 语言 print 一样 tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上
当前记录中的字段个数,就是有多少列 | | NR | 已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加中 | | FNR | 当前记录数,与NR不同的是,这个值会是各个文件自己的行号 |