700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Linux】ps和top进程管理命令

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

时间:2018-07-24 05:04:05

相关推荐

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

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

1. ps和top命令区别

1.1 ps命令

可以查看进程的瞬间信息(系统在过去执行的进程的静态快照).只看到的是命令执行瞬间的进程信息.只是查看进程。主要是查看进程的,关注点在于查看需要查看的进程。

1.2 top命令

可以持续的监视进程的信息。可以监视系统性能,如平均负载,cpu和内存的消耗。可以操作进程,如改变优先级(命令r)和关闭进程(命令k)。主要看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 相应的进程名称
ps:将某个进程显示出来 grep:查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。它的使用权限是所有用户。|:管道命令 表示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的使用情况

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。