热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

1、ps命令       ps能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态        命令参数:         a                        

1、ps命令

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

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


常用实例&#xff1a;

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

        ps -ef                                    显示所有进程信息&#xff0c;包括命令行

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

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

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

[root&#64;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&#64;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显示项解析&#xff1a;

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

    &#43; 位于后台的进程组 

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


2&#xff0c;top命令

[root&#64;localhost ~]#  top  &#xff08;默认3秒刷新&#xff09;


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&#43;  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

其内容如下&#xff1a;

12:38:33

当前时间

up 50days

系统运行时间

7 user

当前登录用户数

load average: 0.06, 0.60, 0.48

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

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

当有多个CPU时&#xff0c;这些内容可能会超过两行。内容如下&#xff1a;

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. 第四五行为内存信息。

内容如下&#xff1a;

Mem: 191272k total

物理内存总量

173656k used

使用的物理内存总量

17616k free

空闲内存总量

22052k buffers

用作内核缓存的内存量

Swap: 192772k total

交换区总量

0k used

使用的交换区总量

192772k free

空闲交换区总量

123988k cached

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


进程信息解释&#xff1a;



列名

含义

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名

PR

优先级

NI

nice值&#xff0c;负值表示高优先级&#xff0c;正值表示低优先级

P

最后使用的CPU&#xff0c;仅在多CPU环境下有意义

%CPU

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

TIME

进程使用的CPU时间总计&#xff0c;单位秒

TIME&#43;

进程使用的CPU时间总计&#xff0c;单位1/100秒

%MEM

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

VIRT

进程使用的虚拟内存总量&#xff0c;单位kb。VIRT&#61;SWAP&#43;RES

SWAP

进程使用的虚拟内存中&#xff0c;被换出的大小&#xff0c;单位kb

RES

进程使用的、未被换出的物理内存大小&#xff0c;单位kb

RES&#61;CODE&#43;DATA

CODE

可执行代码占用的物理内存大小&#xff0c;单位kb

DATA

可执行代码以外的部分(数据段&#43;栈)占用的物理内存大小&#xff0c;单位kb

SHR

共享内存大小&#xff0c;单位kb

nFLT

页面错误次数

nDRT

最后一次写入到现在&#xff0c;被修改过的页面数

S

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

COMMAND

命令名/命令行

WCHAN

若该进程在睡眠&#xff0c;则显示睡眠中的系统函数名

Flags

任务标志&#xff0c;参考 sched.h

                         


推荐阅读
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • SQL Server 内存中OLTP内部机制概述(一)
    内存中OLTP(项目名为“Hekaton”)是一个新的完全集成到SQLServer中的数据库引擎组件。它专为访问内存常驻数据的OLTP工作负荷而进行优化。内存中OLTP有助于OLT ... [详细]
  • 第七课主要内容:多进程多线程FIFO,LIFO,优先队列线程局部变量进程与线程的选择线程池异步IO概念及twisted案例股票数据抓取 ... [详细]
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • C++ STL复习(13)容器适配器
    STL提供了3种容器适配器,分别为stack栈适配器、queue队列适配器以及priority_queue优先权队列适配器。不同场景下,由于不同的序列式 ... [详细]
  • java线程池的实现原理源码分析
    这篇文章主要介绍“java线程池的实现原理源码分析”,在日常操作中,相信很多人在java线程池的实现原理源码分析问题上存在疑惑,小编查阅了各式资 ... [详细]
  • RingBuffer,或者说CircularBuffer,是一个长度固定的缓冲区,当从一端插入元素超过指定的最大长度时,缓冲区另一端的元素 ... [详细]
author-avatar
luosj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有