Linux —— 查看进程命令及进程优先级

目录

一,查看进程命令

1,ps 命令 

ps axj

ps aux

ps l

ps -l

2,top 命令

3,ptree 命令

4,pgrep 命令

三,进程优先级

PRI

NI


//实时记录指定进程状态
[wz@192 ~]$ while :; do echo "###########"; ps axj | head -1 && ps axj | grep target | grep -v grep; echo "#########"; sleep 1; done

一,查看进程命令

        ps、top、pstree、grep;

1,ps 命令 

        静态查看进程信息,可接受多种选项;

  • UNIX选项,需加破折号(-);
  • BSD选项,不需加破折号(-);
  • GNU长选项,需加两个破折号(-);

选项

  • a,取消BSD风格的“仅你自己”限制,列出所有使用终端tty的进程;与选项x一起将列出所有进程;
  • x,取消BSD风格的“需有tty”限制,列出所有仅自己的进程;
  • j,BSD作业控制格式,增加了如PPID等信息;
  • u,显示面向用户的格式,显示如USER、%CPU、%MEM等信息;
  • l,BSD长格式显示,显示如F、UID、PID、PPID、PRI等;
  • -l,长格式,常与-y一起使用,显示如F、S、UID、PID、PPID、C等;
  • -A、-e,列出所有进程;
  • -a,列出所有进程,除了 session leaders 和关联终端的进程;
  • -d,列出所有进程,除了 session leaders ;
  • p、-p、--pid,选择指定PID的进程;
  • --ppid,选择指定PID的父进程;
  • U、-u、--user,选择用户RUID或名字的进程;
ps axj
[wz@192 ~]$ ps axj | head -1 && ps axj | grep bash
  PPID    PID   PGID    SID TTY       TPGID STAT   UID   TIME COMMAND
     1    786    775    775 ?            -1 S        0   0:00 /bin/bash /usr/sbin/ksmtuned
  2095   2231   2231   2231 ?            -1 Ss    1000   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
  2848   2856   2856   2856 pts/0      2937 Ss    1000   0:00 bash
  2848   3086   3086   3086 pts/1      4838 Ss    1000   0:00 bash
  3086   4839   4838   3086 pts/1      4838 S+    1000   0:00 grep --color=auto bash
ps aux
[wz@192 ~]$ ps aux | head -1 && ps aux | grep bash
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        786  0.0  0.0 115408   952 ?        S    07:27   0:00 /bin/bash /usr/sbin/ksmtuned
wz         2231  0.0  0.0  72472   776 ?        Ss   07:28   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
wz         2856  0.0  0.1 116860  3300 pts/0    Ss   07:28   0:00 bash
wz         3086  0.0  0.1 116860  3416 pts/1    Ss   07:37   0:00 bash
wz         4849  0.0  0.0 112816  1012 pts/1    S+   08:59   0:00 grep --color=auto bash
  • USER,进程的用户;
  • PID,该进程标识符;
  • %CPU,该进程占用CPU的百分比;
  • %MEM,该进程占用内存的百分比;
  • VSZ,该进程使用虚拟内存量KB;
  • RSS,该进程使用的物理内存量KB;
  • TTY,启动该进程的终端设备,非终端启动显示?;
  • STAT,该进程状态,如R、S、D、T、Z;
  • START,该进程启动时间;
  • TIME,该进程累计cpu时间;
  • COMMAND,该进程启动命令;
ps l
[wz@192 ~]$ ps l 
F   UID    PID   PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0  1000   2856   2848  20   0 116860  3300 do_wai Ss   pts/0      0:00 bash
0  1000   2937   2856  20   0 119848  2376 do_wai S+   pts/0      0:00 man ps
0  1000   2950   2937  20   0 110408   928 n_tty_ S+   pts/0      0:00 less -s
0  1000   3086   2848  20   0 116860  3420 do_wai Ss   pts/1      0:00 bash
0  1000   5035   3086  20   0 153324  1532 -      R+   pts/1      0:00 ps l
ps -l
[wz@192 ~]$ ps -l 
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000   3086   2848  0  80   0 - 29215 do_wai pts/1    00:00:00 bash
0 R  1000   5051   3086  0  80   0 - 38331 -      pts/1    00:00:00 ps
  • F,该进程标志,说明进程权限;
    • 1,仅可复制,不可执行;
    • 4,进程权限为root;
  • S,该进程状态,如R、S、D、T、Z;
  • UID,该进程执行者;
  • PID,该进程标识符;
  • PPID,该进程父进程标识符;
  • C,CPU的使用率;
  • PRI,该进程优先级,值越小优先级越高;
  • NI,该进程nice值;
  • ADDR,该进程的内存地址;
  • SZ,该进程交换空间大小;
  • WCHAN,显示休眠进程的系统函数名;
  • TTY,启动该进程的终端设备,非终端启动显示?;
  • TIME,该进程累计cpu时间;
  • CMD,该进程启动命令;

2,top 命令

        动态实时查看进程信息;

按键

  • P,根据CPU使用百分比排序;
  • M,根据物理内存大小排序;
  • N,根据启动时间排序;
  • c,切换显示命令名称和完整命令行;
  • h,获得top进程在线帮助信息;
  • k,根据提示输入进程PID,并按Enter终止对应进程;
  • 1,显示CPU个数和状态;

3,ptree 命令

         以树形结构查看进程数;

  • -a,显示命令行参数;
  • -u,显示用户名;
  • -p,显示PID;
[wz@192 ~]$ pstree 
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─2*[{NetworkManager}]
[wz@192 ~]$ pstree -aup
systemd,1 --switched-root --system --deserialize 22
  ├─ModemManager,682
  │   ├─{ModemManager},697
  │   └─{ModemManager},757
  ├─NetworkManager,840 --no-daemon
  │   ├─dhclient,971 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf...
  │   ├─{NetworkManager},846
  │   └─{NetworkManager},849

4,pgrep 命令

        基于名称和其他属性,来查询或显示进程;

  • -l,显示进程名字及PID;
  • -a,显示完整的命令行及PID;
  • -u,匹配用户ID的进程;
  • -n,仅显示最新进程的PID;
  • -o,仅显示最老进程的PID;
  • -t,显示匹配终端的进程PID;
[wz@192 ~]$ pgrep -l bash
2856 bash
3086 bash
[wz@192 ~]$ pgrep -l man
42222 man
[wz@192 ~]$ pgrep -a man
42222 man pgrep
[wz@192 ~]$ pgrep -n bash
3086
[wz@192 ~]$ pgrep -o bash
2856
[wz@192 ~]$ pgrep -u 1000 -l
2090 gnome-keyring-d
2095 gnome-session-b
2104 dbus-launch
2105 dbus-daemon
2140 imsettings-daem
...
[wz@192 ~]$ pgrep -t pts/1,pts/0 -l
44435 bash
44489 bash
44547 man
44562 less

三,进程优先级

        内核使用【0~139】数字来表示140种内部优先级,值越低优先级越高;

  • 【0~99】专供实时进程使用;
  • 【-20~19】Nice值映射到【100~139】;

  • 优先级,即CPU分配资源的先后顺序;决定何时运行及接受CPU多长时间;
  • 优先级高的优先执行,配置进程优先级对多任务环境有用,可改善系统性能;

PRI

  • 表示进程优先级,即程序被CPU执行的先后顺序;
  • 此值越小,级别越高;

NI

  • 表示进程优先级的修正值;
  • 调整进程优先级,在Linux下即调整进程NI值;
  • NI值取值范围为-20~19;
  • PRI(new) = PRI(old) + Nice;

在top中更改进程NI值

  • 进入top(按“r”) ->  输入PID  ->  输入NI值;
  • 假如进程PRI为80,每次调整都是从80开始的;
  • 输入调整的NI值会被钳制在-20~19自己;

相关概率:

  • 竞争性,系统进程众多,CPU资源较少,进程间具有竞争性;优先级用于更合理竞争相关资源,从而有效完成任务;
  • 独立性,多进程运行,需独立享受各种资源,运行期间互不干扰;
  • 并行,多进程在多个CPU下分别同时运行;
  • 并发,多进程在单个CPU下一段时间内切换运行;

注:OS调度器原则是公平且高效;

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值