【Linux】ps和top进程管理命令

ps命令和top都是查看Linux系统进程相关信息,即进程管理工具。

1. ps和top命令区别

1.1 ps命令
  1. 可以查看进程的瞬间信息(系统在过去执行的进程的静态快照).
  2. 只看到的是命令执行瞬间的进程信息.
  3. 只是查看进程。
  4. 主要是查看进程的,关注点在于查看需要查看的进程。
1.2 top命令
  1. 可以持续的监视进程的信息。
  2. 可以监视系统性能,如平均负载,cpu和内存的消耗。
  3. 可以操作进程,如改变优先级(命令r)和关闭进程(命令k)。
  4. 主要看cpu,内存使用情况,及占用资源最多的进程由高到低排序,关注点在于资源占用情况。

2. ps和top命令

2.1 ps命令
2.1.1 只输入ps: 显示当前控制台下属于当前用户的进程;

在这里插入图片描述

2.1.2 ps -au

在这里插入图片描述
解释如下:
VSZ–进程的虚拟大小
RSS–驻留集的大小,可以理解为内存中页的数量
TTY–控制终端的ID
STAT–也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STRAT–这个很简单,就是该进程启动的时间
TIME–进程已经消耗的CPU时间,注意是消耗CPU的时间
COMMOND–命令的名称和参数
这个可以查看占用的内存

2.1.3 ps -aux 查看一个运行中的程序, 占用了多少内存
2.2 top命令

在这里插入图片描述
top命令反应的是系统进程动态信息,默认10s更新一次,可以用ps -d指定屏幕刷新的延迟时间。
允许用户输入控制命令,比如在top命令的模式下输入n5,显示此时5个最活跃的进程,top会持续运行直到用户按下"q",退出top。
在这里插入图片描述

3. 使用场景

3.1 查看系统中nginx、tomcat等进程
方法一:输入命令:ps -ef | grep 相应的进程名称
  1. ps:将某个进程显示出来
  1. grep:查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。它的使用权限是所有用户。
  2. |:管道命令 表示ps命令与grep同时执行

ps -ef:去进行查看系统上的运行的所有进程

参数 -e 显示运行在系统上的所有进程
参数 -f 扩展显示输出

在这里插入图片描述

上述红色框住的参数含义如下:
UID:用户ID,实际输出的是用户名,如root
PID:当前进程的ID
PPID:当前进程的父进程ID
C:当前进程占用的CPU的百分比
STIME:当前进程启动到现在的时间
TTY:当前进程在哪个终端上运行,若与进程无关,则显示为?,若为pts/0等,则表示由网络连接主机进程。
CMD:命令的名称和参数

当我们执行: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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

其中各个参数的含义如下:
%CPU:进程占用的CPU百分比;
%MEM:进程占用内存的百分比;
VSZ:进程使用的虚拟内存量(KB);
RSS:进程占用的固定内存量(KB);
START:进程被触发启动的时间;
TIME:进程实际使用CPU运行的时间(注意:这是cpu实际的运行时间);
COMMAND:命令的名称和参数;

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

如何利用ps aux 将展示的数据按照cpu或者内存进行排序?
按照CPU降序: ps aux --sort=-%cpu
按照内存降序: ps aux --sort=-rss
注意:将-%cpu改为+%cpu则变成CPU升序;-rss改为+rss则变为内存升序。

3.2 动态跟踪指定进程的资源使用情况

top -p 进程id,则可以一秒一次跟踪cpu的使用情况。

(1)top -d 1 -n 1000 这一行命令表示延迟1秒为周期,打印1000次。
(2)在top命令下,输入u,然后输入相应的用户名,则可以查看相应的用户进程,这个命令还是比较好用,比如,我们想看下mysql用户的动态进程信息。

输出mysql用户相关的进程信息,如下:
在这里插入图片描述

(2)top 然后输入1,查看各个cpu的使用情况

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ashley zhao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值