Linux进程管理:ps & top

版权声明:作者-傲娇天子 博文主页地址:https://blog.csdn.net/qq_41116956 欢迎转载,转载请在文章页面明显位置给出原文链接,谢谢 https://blog.csdn.net/qq_41116956/article/details/82896913

首先说一下进程常识:

centos5/6    PID 为 1 的进程是: init
centos7      PID 为 1 的进程是: systemd

见下:

Centos-5/6
[root@CactiEZ ~]# ps -aux | head -2
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  19208  1540 ?        Ss   Sep19   0:01 /sbin/init
Centos-7
[root@localhost ~]# ps -aux | head -2
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.5 126476  5548 ?        Ss   9月20   0:18 /usr/lib/systemd/systemd --switched-root --system --deserialize 21

ps命令:

常用的方法又2种:

①:ps -aux

[root@localhost ~]# ps -aux |head 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.5 126476  5548 ?        Ss   9月20   0:18 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2  0.0  0.0      0     0 ?        S    9月20   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    9月20   0:01 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    9月20   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    9月20   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    9月20   0:00 [rcuob/0]
root         10  0.0  0.0      0     0 ?        S    9月20   0:00 [rcuob/1]
root         11  0.0  0.0      0     0 ?        S    9月20   0:00 [rcuob/2]
root         12  0.0  0.0      0     0 ?        S    9月20   0:00 [rcuob/3]

说明:“[]”是内核态执行的进程,没有的就是用户态执行的进程,如:

USER    PID     %CPU       %MEM        VSZ       RSS     TTY    STAT   START   TIME COMMAND  
root    5620     0.0        0.1       141576    1688     pts/0   R+    14:38   0:00 ps -aux

列表内容说明:

[root@localhost ~]# ps -aux |head 
USER    PID     %CPU       %MEM        VSZ       RSS     TTY    STAT   START   TIME COMMAND  
用户    进程号  cpu使用率  内存使用率   虚拟内存  物理内存  终端号 程序状态 启动时间 使用时间 命令

这个已经很实用了,如果需要详细信息见下内容:

部分详细说明
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
STAT:该程序目前的状态,Linux 进程有 5 种基本状态:
    R :该程序目前正在运作,或者是可被运作;
    S :该程序目前正在睡眠当中,但可被某些讯号(signal) 唤醒。
    T :该程序目前正在侦测或者是停止了;
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie 程序的状态
    D :不可中断状态.
5 个基本状态后,还可以加一些字母:
它们含意如下::
    <: 表示迚程运行在高优先级上
    N: 表示迚程运行在低优先级上
    L: 表示迚程有页面锁定在内存中
    s: 表示迚程是控制迚程
    l: 表示迚程是多线程的
    +: 表示弼前迚程运行在前台
START:该 process 被触发启劢的时间;
TIME :该 process 实际使用 CPU 运作的时间。

②:ps -ef

[root@localhost ~]# ps -ef | head 
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 9月20 ?       00:00:18 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2      0  0 9月20 ?       00:00:00 [kthreadd]
root          3      2  0 9月20 ?       00:00:01 [ksoftirqd/0]
root          7      2  0 9月20 ?       00:00:00 [migration/0]
root          8      2  0 9月20 ?       00:00:00 [rcu_bh]
root          9      2  0 9月20 ?       00:00:00 [rcuob/0]
root         10      2  0 9月20 ?       00:00:00 [rcuob/1]
root         11      2  0 9月20 ?       00:00:00 [rcuob/2]
root         12      2  0 9月20 ?       00:00:00 [rcuob/3]

说明:

UID: 用户
PID: 进程号
PPID: 父进程的进程号
C: 进程生命周期中的 CPU 利用率
STIME: 进程启动时的系统时间
TTY: 表明进程在哪个终端设备上运行。如果显示 ?表示不终端无关
TIME: 运行进程一共累计占用的 CPU 时间
CMD: 程序名称

top命令:

扫描二维码关注公众号,回复: 5972018 查看本文章

先说一下uptime:

[root@localhost ~]# uptime 
 14:46:04     up     8 days, 22:30,  2 users,          load average: 0.00, 0.01, 0.05
 当前时间  up代表在线 在线8天22:30时   2个用户正在使用     CPU负载:   平均1min 5min 15min

top:

top - 14:48:54 up 8 days, 22:32,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 416 total,   2 running, 414 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1001332 total,    96260 free,   532080 used,   372992 buff/cache
KiB Swap:  2097148 total,  2011916 free,    85232 used.   223640 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND               
     1 root      20   0  126476   5548   2732 S  0.0  0.6   0:18.10 systemd               
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.14 kthreadd              
     3 root      20   0       0      0      0 S  0.0  0.0   0:01.21 ksoftirqd/0           
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0

简要说明:

[root@localhost ~]# top
top - 14:51:22 up 8 days, 22:35,  2 users,  load average: 0.00, 0.01, 0.05
第一行和uptime一样

Tasks: 416 total,   2 running, 414 sleeping,   0 stopped,   0 zombie
进程数:    总共        执行中        睡眠中        停止         

%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
cpu      用户使用   内核使用  优先级   剩余      等待                       kvm中的虚拟机使用

KiB Mem :  1001332 total,    95920 free,   532412 used,   373000 buff/cache
内存            总共内存        剩余内存        使用内存            缓存内存

KiB Swap:  2097148 total,  2011916 free,    85232 used.   223308 avail Mem 
交换分区        总共            剩余            使用            可用

进入top后的快捷键:

top界面默认 3s 刷新一次,按 s 键修改刷新时间
按空栺 :立即刷新。
    q 退出
    P:按 CPU 排序
    M:按内存排序
    T:按时间排序
    p: 进程 IP,查看某个进程状态
    数字键 1:显示每个内核的 CPU 使用率
    u/U:挃定显示的用户
    h:帮助

在上面我们知道了ps的用法,在ps命令中我们可以获得进程的PID。而top命令可以动态查询进程的信息

[root@localhost ~]# top -p 进程号(PID)

猜你喜欢

转载自blog.csdn.net/qq_41116956/article/details/82896913