Linux 查看进程资源--ps、top命令

简介:

1,ps命令

       ps能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态

        命令参数:
         a                                      显示所有进程
        -a                                      显示同一终端下的所有程序
        -A                                     显示所有进程
         c                                      显示进程的真实名称
        -N                                     反向选择
        -e                                      等于“-A”
         e                                      显示环境变量
         f                                       显示程序间的关系
        -H                                     显示树状结构
         r                                       显示当前终端的进程
        T                                       显示当前终端的所有程序
        u                                       指定用户的所有进程
      -au                                      显示较详细的资讯
      -aux                                    显示所有包含其他使用者的行程 
    -C<命令>                             列出指定命令的状况
   --lines<行数>                         每页显示的行数
  --width<字符数>                     每页显示的字符数
   --help                                      显示帮助信息
   --version                                 显示版本显示


常用实例:

        ps -u root                            查看root用户的进程

        ps -ef                                    显示所有进程信息,包括命令行

        ps  aux                                  列出目前所有的正在内存当中的程序

        ps -aux --sort -pcpu | less        根据CPU使用升序排序

        ps-aux --sort -pmem | less        根据内存使用大小排序

[root@localhost ~]# ps aux

USER      PID       %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND
smmsp    3521    0.0    0.7    6556    1616    ?    Ss    20:40    0:00    sendmail: Queue runner@01:00:00 f
root    3532    0.0    0.2    2428    452    ?    Ss    20:40    0:00    gpm -m /dev/input/mice -t imps2
htt    3563    0.0    0.0    2956    196    ?    Ss    20:41    0:00    /usr/sbin/htt -retryonerror 0
htt    3564    0.0    1.7    29460    3704    ?    Sl    20:41    0:00    htt_server -nodaemon
root    3574    0.0    0.4    5236    992    ?    Ss    20:41    0:00    crond
xfs    3617    0.0    1.3    13572    2804    ?    Ss    20:41    0:00    xfs -droppriv -daemon
root    3627    0.0    0.2    3448    552    ?    SNs    20:41    0:00    anacron -s
root    3636    0.0    0.1    2304    420    ?    Ss    20:41    0:00    /usr/sbin/atd
dbus    3655    0.0    0.5    13840    1084    ?    Ssl    20:41    0:00    dbus-daemon-1 --system

ps aux显示项解析:

USER    用户名
UID    用户ID(User ID)
PID    进程ID(Process ID)
PPID    父进程的进程ID(Parent Process id)
SID    会话ID(Session id)
%CPU    进程的cpu占用率
%MEM    进程的内存占用率
VSZ    进程所使用的虚存的大小(Virtual Size)
RSS    进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
TTY    与进程关联的终端(tty)
STAT    进程的状态:进程状态使用字符表示的(STAT的状态码)
    R 运行                正在运行或在运行队列中等待
    S 睡眠                休眠中, 受阻, 在等待某个条件的形成或接受到信号
    I 空闲    
    Z 僵死                 进程已终止, 但进程描述符存在
    D 不可中断         收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
    T 终止                 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
    P 等待交换页
    W 无驻留页          没有足够的记忆体分页可分配。
    X 死掉的进程
    < 高优先级进程                    高优先序的进程
    N 低优先    级进程                低优先序的进程
    L 内存锁页                             有记忆体分页分配并缩在记忆体内
    s 进程的领导者(在它之下有子进程);
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)

    + 位于后台的进程组 

START    进程启动时间和日期
TIME    进程使用的总cpu时间
COMMAND    正在执行的命令行命令


2,top命令

[root@localhost ~]#  top  (默认3秒刷新)


top - 12:38:33 up 50 days, 23:15,  7 users,  load average: 60.58, 61.14, 61.22

Tasks: 203 total,  60 running, 139 sleeping,   4 stopped,   0 zombie

Cpu(s) : 27.0%us, 73.0%sy,  0.0%ni,  90%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:  1939780k total,  1375280k used,   564500k free,   109680k buffers

Swap:  4401800k total,   497456k used,  3904344k free,   848712k cached

  PID  USER     PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          

 4338 oracle    25   0  627m 209m 207m R    0  11.0 297:14.76 oracle    

 4267 oracle    25   0  626m 144m 143m R    6  7.6  89:16.62 oracle    

 3458 oracle    25   0  672m 133m 124m R    0  7.1   1283:08 oracle    

 3478 oracle    25   0  672m 124m 115m R    0  6.6   1272:30 oracle    

 3395 oracle    25   0  672m 122m 113m R    0  6.5   1270:03 oracle    

 3480 oracle    25   0  672m 122m 109m R    8  6.4   1274:13 oracle    

 3399 oracle    25   0  672m 121m 110m R    0  6.4   1279:37 oracle  

TOP前五行统计信息

统计信息区前五行是系统整体的统计信息。

1. 第一行是任务队列信息

同 uptime 命令的执行结果一样

 13:22:30 up 8 min,  7 users,  load average: 0.14, 0.38, 0.25

其内容如下:

12:38:33

当前时间

up 50days

系统运行时间

7 user

当前登录用户数

load average: 0.06, 0.60, 0.48

系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

2. 第二、三行为进程和CPU的信息

当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 203 total

进程总数

60 running

正在运行的进程数

139 sleeping

睡眠的进程数

4 stopped

停止的进程数

0 zombie

僵尸进程数

Cpu(s): 27%us

用户空间占用CPU百分比

73.0% sy

内核空间占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

90% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比





3. 第四五行为内存信息。

内容如下:

Mem: 191272k total

物理内存总量

173656k used

使用的物理内存总量

17616k free

空闲内存总量

22052k buffers

用作内核缓存的内存量

Swap: 192772k total

交换区总量

0k used

使用的交换区总量

192772k free

空闲交换区总量

123988k cached

缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入


进程信息解释:


列名

含义

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名

PR

优先级

NI

nice值,负值表示高优先级,正值表示低优先级

P

最后使用的CPU,仅在多CPU环境下有意义

%CPU

上次更新到现在的CPU时间占用百分比

TIME

进程使用的CPU时间总计,单位秒

TIME+

进程使用的CPU时间总计,单位1/100秒

%MEM

进程使用的物理内存百分比

VIRT

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb

RES

进程使用的、未被换出的物理内存大小,单位kb

RES=CODE+DATA

CODE

可执行代码占用的物理内存大小,单位kb

DATA

可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

SHR

共享内存大小,单位kb

nFLT

页面错误次数

nDRT

最后一次写入到现在,被修改过的页面数

S

进程状态
            D=不可中断的睡眠状态
            R=运行
            S=睡眠
            T=跟踪/停止
            Z=僵尸进程

COMMAND

命令名/命令行

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

Flags

任务标志,参考 sched.h

                         













本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/1886802 ,如需转载请自行联系原作者




相关文章
|
7月前
|
Web App开发 Linux 程序员
获取和理解Linux进程以及其PID的基础知识。
总的来说,理解Linux进程及其PID需要我们明白,进程就如同汽车,负责执行任务,而PID则是独特的车牌号,为我们提供了管理的便利。知道这个,我们就可以更好地理解和操作Linux系统,甚至通过对进程的有效管理,让系统运行得更加顺畅。
223 16
|
6月前
|
监控 Shell Linux
Linux进程控制(详细讲解)
进程等待是系统通过调用特定的接口(如waitwaitpid)来实现的。来进行对子进程状态检测与回收的功能。
131 0
|
6月前
|
存储 负载均衡 算法
Linux2.6内核进程调度队列
本篇文章是Linux进程系列中的最后一篇文章,本来是想放在上一篇文章的结尾的,但是想了想还是单独写一篇文章吧,虽然说这部分内容是比较难的,所有一般来说是简单的提及带过的,但是为了让大家对进程有更深的理解与认识,还是看了一些别人的文章,然后学习了学习,然后对此做了总结,尽可能详细的介绍明白。最后推荐一篇文章Linux的进程优先级 NI 和 PR - 简书。
201 0
|
6月前
|
存储 Linux Shell
Linux进程概念-详细版(二)
在Linux进程概念-详细版(一)中我们解释了什么是进程,以及进程的各种状态,已经对进程有了一定的认识,那么这篇文章将会继续补全上篇文章剩余没有说到的,进程优先级,环境变量,程序地址空间,进程地址空间,以及调度队列。
133 0
|
6月前
|
Linux 调度 C语言
Linux进程概念-详细版(一)
子进程与父进程代码共享,其子进程直接用父进程的代码,其自己本身无代码,所以子进程无法改动代码,平时所说的修改是修改的数据。为什么要创建子进程:为了让其父子进程执行不同的代码块。子进程的数据相对于父进程是会进行写时拷贝(COW)。
182 0
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
318 137
|
3月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
726 57

热门文章

最新文章