Linux 中ps 和 top命令详解_ps-ef和top

输入命令: ps -ef

效果如下:

上述红色框住的参数含义如下:

**UID:**用户ID,实际输出的是用户名,如root

**PID:**当前进程的ID

**PPID:**当前进程的父进程ID

**C:**当前进程占用的CPU的百分比

**STIME:**当前进程启动到现在的时间

**TTY:**当前进程在哪个终端上运行,若与进程无关,则显示为?,若为pts/0等,则表示由网络连接主机进程。

**CMD:**命令的名称和参数

关于PID和PPID,我们来看个栗子,如下:

**当我们执行:**ps-ef 命令之后,看到如下关系图:

可以看到ps -ef这个命令的进程PID为5004,而其父进程号PPID为4945,该4945进程号对应的进程命令为-bash,即表明ps -ef命令是运行在-bash这个shell上,而PID为4945对应的父进程号PPID为4893,该进程是4893,这个进程的命令是sshd,即我们表明我们是通过shell登录进来的,再看PID为1881对应的父进程PPID为1,是命令/sbin/init,这是Linux启动之后第一个被加载的进程。**衍生知识点:**如果我们是在物理主机上执行ps -ef,追根溯源过程中,一定不会有sshd相关的命令。

那么,我们如果想看下是否在ps -ef中输出的命令中是否有mysql相关的行,只需要用grep 来捕获mysql关键字即可,即输入命令:ps -ef|grep mysql

效果如下:

**注意:**上图中用红色框圈出的问号,表明当前进程与终端运行无关。此时,我们可以判断既然与终端无关,那就是该命令是由Linux系统首次启动时启动的,而不是通过某个具体的终端。测试例子如下:

首先,在某个终端(可能是pts或者tty)关闭mysql,输入命令:service mysqld stop,然后执行命令:service mysqld start,此时,再执行命令:ps -ef|grep mysql,效果如下:

这里,显示了具体终端的类型。

**总结:**通过TTY的类型,可以知道该进程是否由系统启动时运行的。

**方法二:**输入命令:ps aux | grep 相应的进程名称

比如:查找是否存在MySQL进程,输入:ps aux|grep mysql,效果如下:

其中各个参数的含义如下:

**%CPU:**进程占用的CPU百分比;

**%MEM:**进程占用内存的百分比;

**VSZ:**进程使用的虚拟内存量(KB);

**RSS:**进程占用的固定内存量(KB);

**START:**进程被触发启动的时间;

**TIME:**进程实际使用CPU运行的时间(注意:这是cpu实际的运行时间);

**COMMAND:**命令的名称和参数;

**问题:**如何查看当前进程的内存使用情况,比如项目名称为platform。

输入命令:ps aux|grep platform

注意观察上面用红色框框圈出的参数,都是有用的,第一个1190是当前的进程号,0.3是cpu的使用率,8.9是内存的使用率,4582832单位是KB是虚拟内存的使用率,718104单位是KB是内存的使用率,16:01 是系统的启动时间,如果是具体的时间值时,表示当天16点01分,在当前之前则只显示具体的日期。1:27表示实际使用CPU的时间,可以看到现在时间(23:00)启动了7个小时,CPU的使用时间为1小时27分。

补充:

**(1)**关于0.3的cpu使用率,我们也可以通过上面的参数计算得到

即CPU的Time的值为1小时27分,而到目前为止总共运行的时间为7个小时,因此,我们大概计算下CPU的平均利用率为:1.5/7=0.214,这与瞬时的0.3大致相吻合。

(2)关于8.9的内存使用率

使用的物理内存为718104Kb,而总的内存我们可以通过free,参数得到:

总的内存为8011936单位是KB,因此,我们可以得到物理内存的使用率:

718104/8011936=0.0896=9%左右

再补充知识点:

如何利用ps aux 将展示的数据按照cpu或者内存进行排序?

按照CPU降序: ps aux --sort=-%cpu

按照内存降序: ps aux --sort=-rss

ps和top是Linux系统常用的进程管理工具。 ps命令可以查看进程的瞬间信息,即系统在过去执行的进程的静态快照。它主要用于查看需要查看的进程,关注点在于进程的信息。而top命令可以持续监视进程的信息,包括系统性能如平均负载、CPU和内存的消耗。它还可以操作进程,如改变优先级和关闭进程。top命令主要关注CPU和内存的使用情况,以及占用资源最多的进程。 举个例子,当我们执行ps -ef命令时,可以看到进程的PID、PPID等信息。比如,PID为5004的进程的父进程号PPID为4945,对应的进程命令为-bash,说明ps -ef命令是运行在-bash这个shell上。而PID为4945的父进程号PPID为4893,对应的进程是sshd,表明我们是通过shell登录进来的。最后,PID为1881的父进程PPID为1,对应的命令是/sbin/init,这是Linux启动之后第一个被加载的进程。需要注意的是,如果我们在物理主机上执行ps -ef命令,追根溯源过程不会有sshd相关的命令。\[2\]\[3\] #### 引用[.reference_title] - *1* [linuxps详解和top区别](https://blog.csdn.net/cy413026/article/details/124922892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【Linuxps和top进程管理命令](https://blog.csdn.net/Y1730008223CONG/article/details/126533853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值