网站搭建书籍推荐,游戏页面,免费ppt素材库大全app,怎样创建公司网站既然程序这么重要#xff0c;那么我们如何查阅系统上面正在运行当中的程序呢#xff1f;利用静态的 ps 或者是动态的 top#xff0c;还能以 pstree 来查阅程序树之间的关系。
ps #xff1a;将某个时间点的程序运行情况撷取下来 仅观察自己的 bash 相关程序#xff1a; p…既然程序这么重要那么我们如何查阅系统上面正在运行当中的程序呢利用静态的 ps 或者是动态的 top还能以 pstree 来查阅程序树之间的关系。
ps 将某个时间点的程序运行情况撷取下来 仅观察自己的 bash 相关程序 ps -l 系统整体的程序运行是非常多的但如果使用 ps -l 则仅列出与你的操作环境 bash 有关的程序而已 亦即最上层的父程序会是你自己的 bash 而没有延伸到 systemd 后续会交待 这支程序去那么 ps -l 出来的数据有哪些呢 我们就来观察看看
F代表这个程序旗标 process flags说明这个程序的总结权限常见号码有
若为 4 表示此程序的权限为 root
若为 1 则表示此子程序仅进行复制fork而没有实际执行exec。
S代表这个程序的状态 STAT主要的状态有
R Running该程序正在运行中
S Sleep该程序目前正在睡眠状态idle但可以被唤醒signal。
D 不可被唤醒的睡眠状态通常这支程序可能在等待 I/O 的情况ex打印
T 停止状态stop可能是在工作控制背景暂停或除错 traced 状态
Z Zombie僵尸状态程序已经终止但却无法被移除至内存外。
UID/PID/PPID代表“此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码”
C代表 CPU 使用率单位为百分比
PRI/NIPriority/Nice 的缩写代表此程序被 CPU 所执行的优先顺序数值越小代表该程序越快被 CPU 执行。
ADDR/SZ/WCHAN都与内存有关ADDR 是 kernel function指出该程序在内存的哪个部分如果是个 running 的程序一般就会显示“ - ” / SZ 代表此程序用掉多少内存 /WCHAN 表示目前程序是否运行中同样的 若为 - 表示正在运行中。
TTY登陆者的终端机位置若为远端登陆则使用动态终端接口 pts/n
TIME使用掉的 CPU 时间注意是此程序实际花费 CPU 运行的时间而不是系统时间
CMD就是 command 的缩写造成此程序的触发程序之指令为何。
所以你看到的 ps -l 输出讯息中他说明的是“bash 的程序属于 UID 为 0 的使用者状态为睡眠 sleep 之所以为睡眠因为他触发了 ps 状态为 run 之故。此程序的 PID 为14836优先执行顺序为 80 下达 bash 所取得的终端接口为 pts/0 运行状态为等待wait 。
观察系统所有程序 ps aux 你会发现 ps -l 与 ps aux 显示的项目并不相同在 ps aux 显示的项目中各字段的意义为
USER该 process 属于那个使用者帐号的
PID 该 process 的程序识别码。
%CPU该 process 使用掉的 CPU 资源百分比
%MEM该 process 所占用的实体内存百分比
VSZ 该 process 使用掉的虚拟内存量 KBytes
RSS 该 process 占用的固定的内存量 KBytes
TTY 该 process 是在那个终端机上面运行若与终端机无关则显示 ?另外 tty1-tty6是本机上面的登陆者程序若为 pts/0 等等的则表示为由网络连接进主机的程序。
STAT该程序目前的状态状态显示与 ps -l 的 S 旗标相同 R/S/T/Z
START该 process 被触发启动的时间
TIME 该 process 实际使用 CPU 运行的时间。
COMMAND该程序的实际指令为何
一般来说ps aux 会依照 PID 的顺序来排序显示我们还是以 14836 那个 PID 那行来说明该行的意义为“ root 执行的 bash PID 为 14836占用了 0.1% 的内存容量百分比状态为休眠 S该程序启动的时间为 8 月 4 号因此启动太久了 所以没有列出实际的时间点。且取得的终端机环境为 pts/0 。”与 ps aux 看到的其实是同一个程序。 通过 sshd 提供的网络服务取得一个程序 该程序提供 bash 给我使用而我通过 bash 再去执行 ps axjf 。
top动态观察程序的变化
相对于 ps 是撷取一个时间点的程序状态 top 则可以持续侦测程序运行的状态使用方式如下 top的功能非常多可以参考man top的内部说明文档。 top是个挺不错的程序观察工具。不同于 ps 是静态的结果输出 top 这个程序可以持续的监测整个系统的程序工作状态。 在默认的情况下每次更新程序资源的时间为 5 秒不过可以使用 -d 来进行修改。 top 主要分为两个画面上面的画面为整个系统的资源使用状态基本上总共有六行显示的内容依序是
第一行top...这一行显示的信息分别为
目前的时间亦即是 00:53:59 那个项目
开机到目前为止所经过的时间亦即是 up 6:07, 那个项目
已经登陆系统的使用者人数亦即是 3 users, 项目
系统在 1, 5, 15 分钟的平均工作负载。代表的是 1, 5, 15 分钟系统平均要负责运行几个程序工作的意思。 越小代表系统越闲置若高于 1 得要注意你的系统程序是否太过繁复了
第二行Tasks...显示的是目前程序的总量与个别程序在什么状态running,sleeping, stopped, zombie。
第三行%Cpus...显示的是 CPU 的整体负载每个项目可使用 ? 查阅。需要特别注意的是 wa 项目那个项目代表的是 I/O wait 通常你的系统会变慢都是 I/O 产生的问题比较大因此这里得要注意这个项目耗用 CPU 的资源喔 另外如果是多核心的设备可以按下数字键“1”来切换成不同 CPU 的负载率。
第四行与第五行表示目前的实体内存与虚拟内存 Mem/Swap 的使用情况。 再次重申要注意的是 swap 的使用量要尽量的少如果 swap 被用的很大量表示系统的实体内存实在不足
第六行这个是当在 top 程序当中输入指令时显示状态的地方。
至于 top 下半部分的画面则是每个 process 使用的资源情况。比较需要注意的是
PID 每个 process 的 ID 啦
USER该 process 所属的使用者
PR Priority 的简写程序的优先执行顺序越小越早被执行
NI Nice 的简写与 Priority 有关也是越小越早被执行
%CPUCPU 的使用率
%MEM内存的使用率
TIMECPU 使用时间的累加
top 默认使用 CPU 使用率 %CPU 作为排序的重点如果你想要使用内存使用率排序则可以按下“M” 若要回复则按下“P”即可。如果想要离开 top 则按下“ q ”吧如果你想要将 top的结果输出成为文件时 可以这样做 可以帮助你将某个时段 top 观察到的结果存成文件可以用在你想要在系统背景下面执行。 由于是背景下面执行与终端机的屏幕大小无关因此可以得到全部的程序画面。
pstree 如果找程序之间的相关性这个pstree很好用。直接输入 pstree 可以查到程序相关性一般链接符号可以使用 ASCII码即可但有时因为语系问题会主动的以 Unicode 的符号来链接 但因为可能终端机无法支持该编码或许会造成乱码问题。因此可以加上 -A 选项来克服此类线段乱码问题。
由 pstree 的输出我们也可以很清楚的知道所有的程序都是依附在 systemd 这支程序下面的。