• ps 专题


    ps p 22763  -L -o pcpu,pid,tid,time,tname,cmd,pmem,rss --sort rss  按rss排序

    ps p 26653 -L -o pcpu,tid |sort -k1 -r -n|less 按第1列pcpu排序

    找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046

    命令:

    ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd

    将获取的线程号(十进制数)转换成十六进制,此处为0xb46

    命令:

    printf "%x "  3046

    查看进程PID为3036中

    nid为0xb46的线程信息。

    命令:

    jstack -l 3036

    ps - 按进程消耗内存多少排序

    ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less

    解析一下:
    ps 都知道,是linux,unix显示进程信息的, -e 是显示所有进程, -o是定制显示信息的格式

    rss: resident set size, 表示进程占用RAM(内存)的大小,单位是KB
    pmem: %M, 占用内存的百分比

    pcpu:%C,占用cpu的百分比
    vsize: 表示进程占用的虚拟内存的大小,KB
    args:进程名(command)

    sort命令对ps结果进行排序
    -k 1 :按第一个参数(此处为rss)进行排序
    -r:逆序
    -n:numeric,按数字来排序

    ps是Linux下用来查看进程的各种信息的工具,通过ps命令我们可以非常清楚地掌握各个进程所使用的系统资源,及时发现那些资源消耗异常的进程。保障服务器系统的高可用性及稳定性。

    系统环境:Debian GNU/Linux 7.7 (wheezy)
    pathname:/bin/ps
    package:procps

    ps命令选项:

    简单进程选择:

    -A      选择所有进程
    -e      选择所有进程,等同于-A

    通过清单选择进程(PROCESS SELECTION BY LIST)

    -C cmdlist
    通过进程的可执行文件的名字来选择进程

    输出格式控制:

    -l —— 长格式,-y选项和这个一起用时很有用
    -o —— 自定义输出格式,后接格式说明符,(格式说明符间用逗号隔开)
    -y —— 不显示flags,显示rss来代替addr,这个选项只能和-l选项一起用

    输出修改器(OUTPUT MODIFIERS):

    --no-headers —— 不打印头部
    --sort spec  —— 指定排序次序,默认是按spec(说明符)升序排列(+spec:按spec升序排列;-spec,按spec降序排列)

    标准格式说明符:

    代码 头部 描述
    %mem %MEM 进程占用物理内存的百分比
    args COMMAND 输出命令及其全部参数
    cmd CMD alias args
    comm COMMAND 仅输出可执行文件的名字
    command COMMAND alias args
    etime ELAPSED 输出进程的运行时间,时间格式如下:[[dd-]hh:]mm:ss(运行时间没有超过一天则不显示dd-,如果运行时间还不到一小时,则显示格式为mm:ss)
    euser EUSER 输出进程的执行者的用户名(有时是显示执行者的uid)
    lstart STARTED 输出进程启动时刻
    pid PID 输出进程的进程号
    psr PSR 进程当前被分配的处理器
    pmem %MEM alias %mem
    rss RSS 物理内存的使用大小(单位为KB)
    rssize RSS alias rss
    rsz RSZ alias rss
    s S 最小状态显示(只显示一个字符)
    stat STAT 多字符状态显示(显示更详细的进程状态信息)
    state S alias s
    uname USER alias euser
    user USER alias euser

    进程状态代码:
    D     不可中断睡眠
    R     正在运行或可运行(或者位于运行队列中)
    S     可中断睡眠
    T      已终止
    X      已死(should never be seen)
    Z      已故进程,已终止但还未被其父进程回收
    <      高优先级(对其它用户不友好)
    N      低优先级(对其它用户友好)
    L       页面锁定在内存
    s       含有子进程(is a session leader)
    l        多线程
    +       位于前台进程组中

    root@godontop:~# ps -eo rss,pid,user,etime,lstart,stat,args --no-headers |sort -k 1 -nr
    按第一个参数rss(物理内存)的使用情况从大到小排序

    按RSS的大小升序排列
    # ps -lyC php5-fpm --sort rss
    S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY        TIME CMD
    S     0 18303     1  0  80   0   508 10460 -      ?      00:00:03 php5-fpm
    S    33 22675 18303  1  80   0 39040 18523 -      ?      00:00:04 php5-fpm
    S    33 22676 18303  0  80   0 42576 19404 -      ?      00:00:03 php5-fpm
    S    33 22435 18303  0  80   0 47904 20698 -      ?      00:00:19 php5-fpm

    备注:当-o选项与--no-headers一起使用时,--no-headers需放在格式说明符的后面

    http://godontop.com/linux-ps-command-usage-69/

    ps -eLo pid,tid,class,rtprio,ni,pri,psr,pcpu,pmem,stat,wchan:30,comm
    -e 显示所有进程
    -L 是现实线程信息
    -o 表示使用用户定义格式打印信息

    tid 表示线程id
    pcpu 表示cpu使用率

    pmem 参照%cpu
    %cpu      %CPU   cpu utilization of the process in "##.#" format. Currently, it is the CPU time used divided by the time the process has been running (cputime/realtime ratio), expressed as a
     percentage. It will not add up to 100% unless you are lucky. (alias pcpu).
    pmem 参照%mem
    %mem      %MEM   ratio of the process's resident set size  to the physical memory on the machine, expressed as a percentage. (alias pmem).

    wchan:30 WCHAN  name of the kernel function in which the process is sleeping, a "-" if the process is running, or a "*" if the process is multi-threaded and ps is not displaying threads.

    程序状态字段解释:

           D    Uninterruptible sleep (usually IO) 不可中断睡眠
           R    Running or runnable (on run queue) 正在执行或可执行,表示目前在运行队列里面
           S    Interruptible sleep (waiting for an event to complete) 可中断睡眠
           T    Stopped, either by a job control signal or because it is being traced.停止
           W    paging (not valid since the 2.6.xx kernel)
           X    dead (should never be seen)
           Z    Defunct ("zombie") process, terminated but not reaped by its parent.僵尸进程

           For BSD formats and when the stat keyword is used, additional characters may be displayed:附加字段
           <    high-priority (not nice to other users) 高优先级
           N    low-priority (nice to other users) 低优先级
           L    has pages locked into memory (for real-time and custom IO)
           s    is a session leader
           l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
           +    is in the foreground process group

    http://blog.chinaunix.net/uid-21706718-id-3341751.html

  • 相关阅读:
    Java第一次作业——Java语言基础
    P田日志<1>
    没解决的问题-git连接失败
    解决每次centos7执行java --version git --version等命令时都要重新source /etc/profile后才能执行,否则找不到命令-转载
    【Linux】VMware虚拟机中如何配置静态IP-转载
    Parallels Desktop 16 破解版 出现网络初始化失败和不能连接USB设备解决方法-转载
    Ubuntu安装git时出错,git-compat-util.h:280:25: fatal error: openssl/ssl.h: 没有那个文件或目录-转载
    遇到的问题29
    解决Idea 导入maven工程编译 Error running 'tms [clean]': Cannot run program "C:Program FilesJavajdk --转载
    jenkins执行shell命令时,提示“Command not found”处理方法-需要在jenkins调用shell脚本的最前面加一行脚本, #!/bin/bash -ilex-------转载
  • 原文地址:https://www.cnblogs.com/softidea/p/5267757.html
Copyright © 2020-2023  润新知