Linux进程查看及管理的工具

Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

1、pstree命令:
    pstree - display a tree of processes
    [[email protected] ~]# pstree
init─┬─agetty
     ├─auditd───{auditd}
     ├─crond
     ├─dbus-daemon
     ├─master─┬─pickup
     │        └─qmgr
     ├─6*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd───sshd───bash───pstree
     ├─udevd───2*[udevd]
     └─xe-daemon───sleep

2、ps: process state
            ps - report a snapshot of the current processes

Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;

ps [OPTION]...
                选项:支持两种风格

常用组合:aux
                    u: 以用户为中心组织进程状态信息显示
                    a: 与终端相关的进程;
                    x: 与终端无关的进程;

[[email protected] ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

VSZ: Virtual memory SiZe,虚拟内存集
                        RSS: ReSident Size, 常驻内存集
                        STAT:进程状态
                            R:running
                            S: interruptable sleeping
                            D: uninterruptable sleeping
                            T: stopped
                            Z: zombie

+: 前台进程
                            l: 多线程进程
                            N:低优先级进程
                            <: 高优先级进程
                            s: session leader

常用组合:-ef
                    -e: 显示所有进程
                    -f: 显示完整格式程序信息
[[email protected] ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Aug05 ?        00:00:00 /sbin/init
root         2     0  0 Aug05 ?        00:00:00 [kthreadd]

[[email protected] ~]# ps -ef | head
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Aug05 ?        00:00:00 /sbin/init
root         2     0  0 Aug05 ?        00:00:00 [kthreadd]
root         3     2  0 Aug05 ?        00:00:00 [migration/0]
root         4     2  0 Aug05 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 Aug05 ?        00:00:00 [stopper/0]
root         6     2  0 Aug05 ?        00:00:00 [watchdog/0]
root         7     2  0 Aug05 ?        00:00:00 [migration/1]
root         8     2  0 Aug05 ?        00:00:00 [stopper/1]
root         9     2  0 Aug05 ?        00:00:00 [ksoftirqd/1]
                常用组合:-eFH
                    -F: 显示完整格式的进程信息
                    -H: 以进程层级格式显示进程相关信息

常用组合:-eo, axo
                    -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
                    axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni: nice值
                        pri: priority,优先级
                        psr: processor, CPU
                        rtprio: 实时优先级
[[email protected] ~]# ps aux | grep java
root     25617  0.0  0.0 103312   880 pts/0    S+   19:54   0:00 grep --color=auto java

[[email protected] ~]# ps -ef | grep java
root     25656 24755  0 19:54 pts/0    00:00:00 grep --color=auto java

查看root用户下面的进程-U root
[[email protected] ~]# ps -U root
  PID TTY          TIME CMD
    1 ?        00:00:00 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 stopper/0

3、pgrep, pkill:
                pgrep [options] pattern
                   pkill [options] pattern

-u uid: effective user
                       -U uid: real user
                       -t terminal: 与指定终端相关的进程
                       -l: 显示进程名
                       -a: 显示完整格式的进程名
                       -P pid: 显示其父进程为此处指定的进程的进程列表
[[email protected] ~]# pgrep -u root
1
2
3
4
5
6

[[email protected] ~]# pgrep -u root -l
1 init
2 kthreadd
3 migration/0
4 ksoftirqd/0
5 stopper/0
6 watchdog/0
7 migration/1
8 stopper/1

4、pidof:
               根据进程名获取其PID;
[[email protected] ~]# pidof init
1

5、top:
               有许多内置命令:
                   排序:
                       P:以占据的CPU百分比;
                       M:占据内存百分比;
                       T:累积占据CPU时长;

首部信息显示:
                       uptime信息:l命令
                    [[email protected] ~]# uptime
 20:34:49 up 3 days, 22 min,  1 user,  load average: 0.00, 0.00, 0.00
                       tasks及cpu信息:t命令
                           cpu分别显示:1 (数字)
                       memory信息:m命令

退出命令:q
                   修改刷新时间间隔:s
                   终止指定进程:k

选项:
                   -d #: 指定刷新时间间隔,默认为3秒;
                   -b: 以批次方式;
                   -n #: 显示多少批次;
[[email protected] ~]# top
top - 20:30:18 up 3 days, 18 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st
Mem:   1015856k total,   211348k used,   804508k free,   103108k buffers
Swap:  1015804k total,        0k used,  1015804k free,    36216k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                        
27240 root      20   0 15024 1292  996 R  0.7  0.1   0:00.10 top                             
    1 root      20   0 19232 1516 1228 S  0.0  0.1   0:00.30 init                            
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                        
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.95 migration/0                     
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.05 ksoftirqd/0                     
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0  
    
6、htop命令:
               选项:
                   -d #: 指定延迟时间;
                   -u UserName: 仅显示指定用户的进程;
                   -s COLOMN: 以指定字段进行排序;
               命令:
                   s: 跟踪选定进程的系统调用;
                   l: 显示选定进程打开的文件列表;
                   a:将选定的进程绑定至某指定CPU核心;
                   t: 显示进程树

注意:Fedora-EPEL源

Linux基础:
        CPU: timeslice
        Memory: 线性地址空间
        I/O:
            分时复用
    进程查看工具:pstree, ps, pgrep, pidof, top, htop

Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

7、vmstat命令:
        vmstat [options] [delay [count]]    
            procs:
                r:等待运行的进程的个数;
                b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);
            memory:
                swpd: 交换内存的使用总量;
                free:空闲物理内存总量;
                buffer:用于buffer的内存总量;
                cache:用于cache的内存总量;
            swap:
                si:数据进入swap中的数据速率(kb/s)
                so:数据离开swap中的数据速率(kb/s)
            io:
                bi:从块设备读入数据到系统的速率;(kb/s)
                bo: 保存数据至块设备的速率;
            system:
                in: interrupts, 中断速率;
                cs: context switch, 进程切换速率;
            cpu:
                us
                sy
                id
                wa
                st

选项:
            -s: 显示内存的统计数据
[[email protected] ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 554400 103744 282736    0    0     1     2   12    6  0  0 100  0  0    
 #表示每2秒执行一次 总共执行5次
[[email protected] ~]# vmstat 2 5   
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 554524 103752 282756    0    0     1     2   12    6  0  0 100  0  0    
 0  0      0 554524 103752 282756    0    0     0     0   20   10  0  0 100  0  0    
 0  0      0 554524 103752 282756    0    0     0     0   17    7  0  0 100  0  0    
 0  0      0 554524 103752 282756    0    0     0     0   20    8  0  0 100  0  0    
 0  0      0 554524 103752 282756    0    0     0    28   17    9  0  0 100  0  0

8、pmap命令:
        pmap - report memory map of a process

pmap [options] pid [...]
                -x: 显示详细格式的信息;

另外一种实现:
                # cat /proc/PID/maps
[[email protected] ~]# pmap 1
1:   /sbin/init
00007fb2dd7cb000     52K r-x--  /lib64/libnss_files-2.12.so
00007fb2dd7d8000   2044K -----  /lib64/libnss_files-2.12.so
00007fb2dd9d7000      4K r----  /lib64/libnss_files-2.12.so
00007fb2dd9d8000      4K rw---  /lib64/libnss_files-2.12.so
00007fb2dd9d9000   1576K r-x--  /lib64/libc-2.12.so

9、glances命令:

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]

内建命令:

a  Sort processes automatically     l  Show/hide logs
              c  Sort processes by CPU%           b  Bytes or bits for network I/O
              m  Sort processes by MEM%           w  Delete warning logs
              p  Sort processes by name           x  Delete warning and critical logs
              i  Sort processes by I/O rate       1  Global CPU or per-CPU stats
              d  Show/hide disk I/O stats         h  Show/hide this help screen
              f  Show/hide file system stats      t  View network I/O as combination
              n  Show/hide network stats          u  View cumulative network I/O
              s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)
              y  Show/hide hddtemp stats

常用选项:
            -b: 以Byte为单位显示网卡数据速率;
            -d: 关闭磁盘I/O模块;
            -f /path/to/somefile: 设定输入文件位置;
            -o {HTML|CSV}:输出格式;
            -m: 禁用mount模块
            -n: 禁用网络模块
            -t #: 延迟时间间隔
            -1:每个CPU的相关数据单独显示;

C/S模式下运行glances命令:
            服务模式:
                glances -s -B IPADDR

IPADDR: 指明监听于本机哪个地址

客户端模式:
                glances -c IPADDR

IPADDR:要连入的服务器端地址

10、dstat命令:
        dstat [-afv] [options..] [delay [count]]

-c: 显示cpu相关信息;
                -C #,#,...,total
            -d: 显示disk相关信息;
                -D total,sda,sdb,...
            -g:显示page相关统计数据;
            -m: 显示memory相关统计数据;
            -n: 显示network相关统计数据;
            -p: 显示process相关统计数据;
            -r: 显示io请求相关的统计数据;
            -s: 显示swapped相关的统计数据;

--tcp
            --udp
            --unix
            --raw
            --socket

--ipc

--top-cpu:显示最占用CPU的进程;
            --top-io: 显示最占用io的进程;
            --top-mem: 显示最占用内存的进程;
            --top-lantency: 显示延迟最大的进程;
[[email protected] ~]# dstat -d
-dsk/total-
 read  writ
3752B 6480B
   0     0
   0     0
   0     0
   0     0
[[email protected] ~]# dstat --tcp
----tcp-sockets----
lis act syn tim clo
  4   1   0   0   0
  4   1   0   0   0

查看最占用io的进程
[[email protected] ~]# dstat --top-io
----most-expensive----
     i/o process      
bash       4527B  207B
sshd: [email protected] 146B  196B
sshd: [email protected]  78B  116B

查看最占用cpu的进程
[[email protected] ~]# dstat --top-cpu
-most-expensive-
  cpu process   
events/1     0.0
 
11、kill命令:

向进程发送控制信号,以实现对进程管理

显示当前系统可用信号:
            # kill -l
            # man 7 signal

常用信号:
                1) SIGHUP: 无须关闭进程而让其重读配置文件;
                2) SIGINT: 中止正在运行的进程;相当于Ctrl+c;
                9) SIGKILL: 杀死正在运行的进程;
                15) SIGTERM:终止正在运行的进程;
                18) SIGCONT:
                19) SIGSTOP:

指定信号的方法:
                (1) 信号的数字标识;1, 2, 9
                (2) 信号完整名称;SIGHUP
                (3) 信号的简写名称;HUP

向进程发信号:
            kill [-SIGNAL] PID...

终止“名称”之下的所有进程:
            killall [-SIGNAL] Program
启动一个web服务
yum -y  install httpd
[[email protected] ~]# chkconfig  httpd on
[[email protected] ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for MyServer
httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# ps -ef | grep 80
root     30670 24755  0 21:46 pts/0    00:00:00 grep --color=auto 80
[[email protected] ~]# service httpd status
httpd (pid  30659) is running...

查看监听80端口
[[email protected] ~]# ss -tnl
State      Recv-Q Send-Q         Local Address:Port           Peer Address:Port
LISTEN     0      128                       :::80                       :::*     
LISTEN     0      128                       :::22                       :::*     
LISTEN     0      128                        *:22                        *:*     
LISTEN     0      100                      ::1:25                       :::*     
LISTEN     0      100                127.0.0.1:25                        *:*

或者
[[email protected] ~]# netstat -anp | grep 80
tcp        0      0 :::80                       :::*                        LISTEN      30659/httpd         
unix  3      [ ]         STREAM     CONNECTED     8980   1109/master

centos7 systemctl = service +chkconfig

[[email protected] ~]# yum install -y systemctl
Loaded plugins: fastestmirror
Setting up Install Process
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.sina.cn
 * extras: centos.ustc.edu.cn
 * updates: mirrors.cug.edu.cn
No package systemctl available.
Error: Nothing to do
            
Linux的作业控制

前台作业:通过终端启动,且启动后一直占据终端;
        后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);

如何让作业运行于后台?
            (1) 运行中的作业
                Ctrl+z
            (2) 尚未启动的作业
                # COMMAND &

此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系:
                # nohup COMMAND &

查看所有作业:
                # jobs

作业控制:
                # fg [[%]JOB_NUM]:把指定的后台作业调回前台;
                # bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行;
                # kill [%JOB_NUM]:终止指定的作业;

进程优先级调整:
        静态优先级:100-139

进程默认启动时的nice值为0,优先级为120;

nice命令:
            nice [OPTION] [COMMAND [ARG]...]

renice命令:
            renice [-n] priority pid...

查看:
            ps axo pid,comm,ni
    未涉及到的命令:sar, tsar, iostat, iftop

时间: 2024-10-26 08:54:40

Linux进程查看及管理的工具的相关文章

20150917 Linux进程查看与管理以及作业管理

第一.基础知识 MBR引导--内核--内核程序-->协调其它程序 一般内核运行在硬件之上,各应用也在硬件之前 1)OS的基本功能:文件系统.网络功能.进程管理.内存管理.驱动程序.安全功能 以上为通用目的设置的程序., 程序=指令+数据, 程序运行在内存当中.这个内存由物理内存映射逻辑空间 左则表示二个框分别表示指令和数据.物理内存划分固定大小的页框称为pageframe. 右则下面的方框表示物理内存.每个进程在右则上面的方框中,这部分为假的内存 空间称为线性地址空间. 2)CPU指令:  四个

9-17 linux进程查看和管理

Linux进程查看与管理 OS的基本功能:文件系统.网络功能.进程管理.内存管理.驱动程序.安全功能 程序=指令+数据 CPU:  特权指令  普通指令 程序执行环境:  内核模式:运行内核级指令  用户模式:运行普通指令 应用程序:   运行普通指令:直接运行于CPU   运行特权指令:通过system call 内存:8bits, 1byte  32bits, 2^32, 0-2^32-1, 2^10*2^10*2^10*2^2 bytes = 2^10*2^10*2^2 kilo byte

Linux进程查看,管理工具

浅谈linux下进程查看,管理工具 1.pstree 显示进程树. 显示各个进程之间的关系 [[email protected] ~]# pstree init─┬─abrtd      ├─acpid      ├─atd      ├─console-kit-dae───63*[{console-kit-da}]      ├─crond      ├─cupsd      ├─dbus-daemon      ├─dhclient      ├─fcoemon      ├─hald─┬─

Linux进程查看与管理、作业控制、网络客户端工具

写在前面: 博客书写牢记5W1H法则:What,Why,When,Where,Who,How. 本篇主要内容: ● 基础概念介绍 进程优先级 进程状态 ● 进程查看与管理命令     pstree     ps     pgrep/pkill     pidof     top     htop     vmstat     pmap     glances     dstat     kill     killall ● linux作业控制     nice     renice ● 网络客户

Linux进程查看与管理

(A).进程相关的概念 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等.这些最基础的计算机动作被称为指令(instruction).程序(program)是由这些指令的集合所构成.程序一般是存储在磁盘上某个路径下的一个可执行文件,程序运行起来后,便成了进程(process),因此,进程便是程序的具体实现.因为Linux的哲学思想之一便是组合小程序,完成复杂任务,因此,要完成某功能可能需要启动多个小程序,因此,进程也会产生多个.进程都运行于内存当中.

Linux之进程查看与管理

                       Linux之进程查看与管理 1.进程的基本概念 进程是运行起来的程序.唯一标示进程的是进程描述符(PID),在linux内核中是通过task_struck和task_list来定义和管理进程的 进程分类:交互式进程.批处理进程.实时进程 交互式进程:一般是由Shell启动的进程.交互式进程有:控制台命令shell,文本编辑器,图形应用程序 批处理进程(Batch Process):不需要用户交互,一般在后台运行. 实时进程:这种进程不能被低优先级进程

Linux系统进程查看及管理工具

Linux系统进程查看及管理工具 ps命令ps:report a snapshot of the current processes.ps [options]:选项有三种风格:1 UNIX options, which may be grouped and must be preceded by a dash.2 BSD options, which may be grouped and must not be used with a dash.3 GNU long options, which

Linux学习笔记&mdash;&mdash;进程查看及管理

Linux进程查看和管理工具有很多 pstree命令:以树形方式显示进程 ps [OPTION]... 常用组合:aux u: 以用户为中心组织进程状态信息显示 a: 与终端相关的进程: x: 与终端无关的进程: 常用组合:-ef             -e: 显示所有进程              -f: 显示完整格式程序信息 常用组合:-eFH             -F: 显示完整格式的进程信息             -H: 以进程层级格式显示进程相关信息 常用组合:-eo, axo

linux 进程查看命令汇集

首先,向大家介绍一些linux查看进程的命令,pstree.ps.top.htop等,接下来为大家演示这几个常用命令. 1,  Linux ps命令: (1)linux 进程查看命令ps,常用命令为#ps aux 如图所示: 其中红色圈出部分: PID:进程号  %CPU:进程占用cpu比例  %MEM:进程占用内存比例  VSZ:虚拟内存占用比例  RSS:常驻内存级 (2)ps常用命令组合#ps –ef  如图所示: 其中,-e:显示所有进程  -f:显示完整格式 2,  linux top