Linux学习-进程管理

查看进程

可以利用静态的ps或是动态的top命令,还可以利用pstree来查看进程树之间的关系

ps
ps [option]...
	选项:支持两种风格
#查看系统所有的进程
[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2 128348  6964 ?        Ss   08:12   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
[root@localhost ~]# ps -lA
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0      1      0  0  80   0 - 32087 ep_pol ?        00:00:03 systemd
#连同部分进程树状态一起显示
[root@localhost ~]# ps -axjf
选项与参数:
-A:所有进程均显示出来,与-e效果一样
-a:不显示与终端有关的所有进程
-u:有效使用者(effective user)相关的进程
-e:显示所有进程
-H:以层级结构显示
-F:以完整格式显示进程信息
-U username:以哪个用户身份运行的进程
x:通常与a这个参数一起使用,可列出较完整信息
输出格式规则:
l:较长、较详细的将该PID的信息列出
j:任务格式(jobs format)
-f:显示完整的命令格式
[root@localhost ~]# ps -A
   PID TTY          TIME CMD
     1 ?        00:00:04 systemd
     2 ?        00:00:00 kthreadd
     3 ?        00:00:00 ksoftirqd/0
     5 ?        00:00:00 kworker/0:0H
     7 ?        00:00:00 migration/0
[root@localhost ~]# ps -a
   PID TTY          TIME CMD
  9942 pts/2    00:00:00 su
  9944 pts/2    00:00:00 bash
 13779 pts/0    00:00:00 ps
[root@localhost ~]# ps -u
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       9921  0.0  0.0 115436  2004 pts/2    Ss   09:09   0:00 -bash
root       9942  0.0  0.0 191884  2444 pts/2    S    09:09   0:00 su - test3
root      12008  0.0  0.0 115432  2008 tty1     Ss+  09:44   0:00 -bash
root      12028  0.0  0.0 110088   848 tty2     Ss+  09:44   0:00 /sbin/agetty --noclear tty2 linux
root      12030  0.0  0.0 110088   848 tty3     Ss+  09:44   0:00 /sbin/agetty --noclear tty3 linux
root      12037  0.0  0.0 110088   852 tty5     Ss+  09:44   0:00 /sbin/agetty --noclear tty5 linux
root      12039  0.0  0.0 110088   848 tty6     Ss+  09:44   0:00 /sbin/agetty --noclear tty6 linux
root      13226  0.0  0.0 115436  2060 pts/0    Ss   10:07   0:00 -bash
root      13829  0.0  0.0 155324  1860 pts/0    R+   10:19   0:00 ps -u
[root@localhost ~]# ps -axl
F   UID    PID   PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0      1      0  20   0 128348  6964 ep_pol Ss   ?          0:04 /usr/lib/systemd/systemd --switched-root --system --deseriali

[root@nginx01 ~]# ps -eFH | grep sshd
root       1272      1  0 28204  4304   3 21:55 ?        00:00:00   /usr/sbin/sshd -D
root       1700   1272  0 40354  6020   2 21:57 ?        00:00:00     sshd: root@pts/0
root       1844   1272  0 40355  6020   3 22:21 ?        00:00:00     sshd: root@pts/1
root       1874   1846  0 28176   968   1 22:27 pts/1    00:00:00         grep --color=auto sshd
#-l :仅查看自己的bash相关进程: ps -l
[root@localhost ~]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0  13226  13221  0  80   0 - 28859 do_wai pts/0    00:00:00 bash
0 R     0  14121  13226  0  80   0 - 38300 -      pts/0    00:00:00 ps
#显示指定字段的进程信息
[root@nginx01 ~]# ps axo pid,psr,command | head
   PID PSR COMMAND
     1   0 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
     2   1 [kthreadd]
     3   0 [ksoftirqd/0]
     5   0 [kworker/0:0H]
     7   0 [migration/0]
     8   0 [rcu_bh]
     9   2 [rcu_sched]
    10   0 [lru-add-drain]
    11   0 [watchdog/0]

:<<! 
 F:代表这个进程标识(process flags),说明这个进程的权限,常见号码有:
 - 若为4表示此进程的权限为root
 - 若为1表示此子进程仅执行复制(fork)而没有实际执行(exec)
 S:代表这个进程的状态(STAT)
 - R(Running):该进程正在运行中
 - S(Interruptable Sleeping):该进程目前正在睡眠状态(idle),但可以被唤醒(signal)
 - D(Uninterruptable Sleeping):不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况(ex>打印)
 - T:停止状态(stop),可能是在任务控制(后台暂停)或跟踪(traced)状态
 - Z(Zombie):僵尸状态,进程已经终止却无法被删除至内存中
 - 【+】:表示前台进程
 - 【l】:多线程进程
 - 【N】:低优先级进程
 - 【<】:高优先级进程
 - 【s】:session leader
 UID,PID,PPID:代表此进程被UID所拥有;进程的PID号码;此进程的父进程PID号码
 C:代表CPU使用率,单位百分比
 PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表该进程越快被CPU执行。
 ADDR/S/WCHAN:都与内存相关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个running的进程,一般会显示【-】;SZ代表此进程用掉多少内存;WCHAN表示目前进程是否运行,同样的,若为-表示正在运行中。
 TTY:登录者的终端位置,若为远程登录则使用动态终端接口名称(pts/#)
 TIME:使用的CPU时间,注意,是此进程实际花费CPU运行的时间,而不是系统时间
 COMMAND:此进程触发进程的命令是什么。
!
查看系统所有进程:ps aux
# a:与终端无关的进程
# u:以用户为中心组织进程状态信息显示
# x:与终端无关的进程
[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.2 128340  6980 ?        Ss   08:42   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    08:42   0:00 [kthreadd]
......(中间省略)......
root       2187  0.0  0.0 155324  1860 pts/0    R+   09:05   0:00 ps aux

USER:该进程所属的用户账号
PID:该进程的进程ID
%CPU:该进程使用的CPU资源百分比
%MEM:该进程所占用的物理内存百分比
VSZ(Virtual memory Size):该进程使用掉的虚拟内存量(KB)
RSS(ReSident Size):该进程使用掉的常驻内存量
TTY:该进程在哪个终端上面运行,若与终端无关则显示??另外tty1-tty6是本机上面的登录进程,若为pts/0等,则表示由网络连接进入主机的进程。
STAT:该进程目前的状态,状态显示与ps -l的S标识相同
START:该进程被触发启动的时间
TIME:该进程被触发实际使用CPU运行的时间
COMMAND:该进程触发的命令
注:ps aux会依照PID顺序来排序显示
pgrep
pgrep [option] pattern
pkill [option] pattern
-u uid:effective user
-U uid:真实用户
-t terminal:与指定终端相关的进程
-l:显示进程名
-a:显示完整格式的进程名
-P pid:显示其父进程为此处指定进程的进程列表
pidof
#根据进程名获取进程pid
[root@nginx01 ~]# pidof sshd
1844 1700 1272
top
#动态查看进程的变化
#内置命令:排序--P:以占据的CPU百分比,--M:以内存使用率,--C:以CPU使用率
[root@nginx01 ~]# uptime
 22:44:58 up 50 min,  2 users,  load average: 0.01, 0.02, 0.05
[root@localhost ~]# top
top - 09:20:14 up 37 min,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 112 total,   1 running, 110 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2719300 total,  2381132 free,   159636 used,   178532 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  2368980 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                         
  1124 root      20   0  298636   6156   4784 S  0.7  0.2   0:03.23 vmtoolsd                                                        
  2192 root      20   0  161940   2184   1540 R  0.3  0.1   0:00.23 top                                                             
     1 root      20   0  128340   6980   4088 S  0.0  0.3   0:02.57 systemd                                                         
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd   
  注:  默认情况下,每次更新进程资源的时间为5秒,不过,可以使用-d来进行修改
  top主要分为两部分,上面为整个系统的资源使用情况,下面是每个进程使用的资源情况
  - 上面部分
   * 第一行uptime(top...)信息(通过l进行切换显示和隐藏):
    + 当前时间:09:20:14
    + 开机到目前为止所经过的时间:37 min
    + 已经登录的用户人数:3 users
    + load average 系统在1,5,15分钟的平均任务负载。数值越小代表系统越闲置,若高于1就要注意你的系统进程是否太过频繁了
   * 第二行(Tasks...):显示的是目前进程的总量与个别进程在什么状态(running,sleeping,stopped,zombie),需要注意zombie的数值,如果不为0,则需要好好查查这个zombie。注:通过【t】可以显示/隐藏此行
   * 第三行(%cpus...):显示的是CPU的整体负载,每个项目可以使用?查看,需要特别注意的是wa项目,代表的是I/O wait,通常系统变慢的原因都是I/O产生的问题比较大。因此这里要注意这个项目耗用CPU资源。
     + us:用户空间使用的CPU百分比
     + sy:内核空间使用的CPU百分比
     + id(idle):空闲的CPU百分比 
     + wa(Wait):等待IO完成百分比
     + hi(hard interrupt):CPU处理硬中断所占用的百分比
     + si(soft interrupt):CPU处理软中断所占用的百分比
     + st(steal):被虚拟化偷走的CPU百分比
   * 第四行与第五行:表示目前的物理内存与虚拟内存(Mem/Swap)的使用情况。再次重申,要注意swap的使用要尽量少,如果swap使用过多,说明物理内存不足,注:通过【t】可以显示/隐藏此行
   * 第六行:这个是当在top进程当中输入命令时,显示状态的部分
  - 下面部分
   * PID:每个进程的ID
   * USER:该进程所属用户
   * PR:priority的简写,进程的优先执行顺序,越小表示越早被执行
   * NI:Nice的简写,与priority有关,也是越小越早被执行
   * VIRT:虚拟内存集
   * RES:常驻内存集
   * SHR:共享内存大小
   * S:表示状态
   * %CPU:CPU的使用率
   * %MEM:内存的使用率
   * TIME+:CPU使用时间的累加
  注:top默认使用CPU使用率(%CPU)作为排序依据,按M切换至Memory排序,N切换至PID排序,P切换至CPU排序,q退出top

#在top命令中可直接杀死进程,敲【k】键,输入进程ID即可
PID to signal/kill [default pid = 1]
#修改刷新时间间隔:敲【s】
# -d #:指定刷新时间间隔,默认为3秒
# -b:以批次方式显示
# -n #:显示多少批次
 #  查看当前bash的PID
 [root@localhost ~]# echo $$
2096
# -d 设置刷新的秒数,-p指定要显示的进程数
[root@localhost ~]# top -d 10 -p 2096
top - 09:44:18 up  1:01,  3 users,  load average: 0.00, 0.03, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2719300 total,  2319228 free,   178820 used,   221252 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  2335636 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                         
  2096 root      20   0  115436   2100   1672 S  0.0  0.1   0:00.07 bash  
#修改nice值
[root@localhost ~]# top -d 10 -p 2096
top - 09:46:41 up  1:03,  3 users,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2719300 total,  2319244 free,   178804 used,   221252 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  2335652 avail Mem 
Renice PID 2096 to value 10
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                         
  2096 root      20   0  115436   2100   1672 S  0.0  0.1   0:00.07 bash   
#修改nice后如下显示:
top - 09:47:19 up  1:04,  3 users,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2719300 total,  2319244 free,   178804 used,   221252 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  2335652 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                         
  2096 root      30  10  115436   2100   1672 S  0.0  0.1   0:00.07 bash  
pstree
[root@localhost ~]# pstree
选项与参数:
-A:各进程树之间以ASCII字符来连接
-U:各进程树之间以Unicode的字符来连接,默认显示
-p:同时列出每个进程的PID
-u:同时显示每个进程所属的用户账号名称

查看系统资源信息

free

查看内存使用情况

#默认显示是kb
[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        2719300      160140     2380248        9804      178912     2368168
Swap:       1048572           0     1048572
#以字节(Bytes)形式显示
[root@localhost ~]# free -b
              total        used        free      shared  buff/cache   available
Mem:     2784563200   163983360  2437373952    10039296   183205888  2425004032
Swap:    1073737728           0  1073737728
#以MB形式显示
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           2655         156        2324           9         174        2312
Swap:          1023           0        1023
#以gb形式展示小数会舍去
[root@localhost ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:              2           0           2           0           0           2
Swap:             0           0           0
#以人类容易识别的方式显示
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.6G        156M        2.3G        9.6M        174M        2.3G
Swap:          1.0G          0B        1.0G
#指定时间刷新显示(秒)
[root@localhost ~]# free -s 1
pmap
#报告进程的内存映射
pmap [options] pid [...]
  -x:显示详细格式的信息
[root@nginx01 ~]# cat /proc/1/maps
glances
#常用选项
-b:以bytes为单位显示网卡数据速率
-d:关闭磁盘IO模块
-f /path/to/somefile:设定输入文件位置
-o {html/csv}:输出格式
-m:禁用mount模块
-n:禁用网络模块
-t #:延迟时间间隔
-1:每个CPU相关数据单独显示
#服务器模式
[root@nginx01 ~]# glances -s -B 192.168.88.101
Glances server is running on 192.168.88.101:61209
#通过客户端连接服务器
[root@nginx01 ~]# glances -c 192.168.88.101

uname

查看系统和内核相关信息

#所有系统相关的信息
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
#系统内核名称
[root@localhost ~]# uname -s
Linux
#内核版本
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
#本系统的硬件架构
[root@localhost ~]# uname -m
x86_64
#cpu架构
[root@localhost ~]# uname -p
x86_64
#硬件平台
[root@localhost ~]# uname -i
x86_64
uptime

查看系统启动时间与任务负载

#top命令的第一行内容,当前时间,系统运行时间,以及1,5,15分钟内的平均负载情况
[root@localhost ~]# uptime
 09:15:34 up 31 min,  3 users,  load average: 0.00, 0.01, 0.05
netstat | ss
#man netstat文档中显示netstat已经过时了,
#his program is obsolete.  Replacement for netstat is ss.  Replacement for netstat -r is ip route.  Replacement  for  netstat -i is ip -s link.  Replacement for netstat -g is ip maddr
# -t:列出tcp网络封包的信息
# -u:列出udp网络封包的信息
# -n:不以进程的服务名称显示,而是以端口号(port number)来显示
# -p:列出目前系统已建立的网络连接与unix socket状态
[root@localhost ~]# ss -tnlp
State       Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port              
LISTEN      0      128                                    *:22                                                 *:*                   users:(("sshd",pid=1622,fd=3))
LISTEN      0      100                            127.0.0.1:25                                                 *:*                   users:(("master",pid=1906,fd=13))
LISTEN      0      128                                   :::22                                                :::*                   users:(("sshd",pid=1622,fd=4))
LISTEN      0      100                                  ::1:25                                                :::*                   users:(("master",pid=1906,fd=14))
[root@localhost ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1622/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1906/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1622/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1906/master  
vmstat
#查看虚拟内存相关信息
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 2335972   2108 201576    0    0    52     6   71  117  0  1 99  0  0
 # -a使用inact/active(活动与否)替换buffer/cache的内存输出信息
 # -S 后面可以接单位,让显示的数据有单位,如K/M替换Bytes的容量
[root@localhost ~]# vmstat -a -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 2  0      0   2281     80    114    0    0    49     6   70  114  0  1 99  0  0
 #数据类似于/proc/memoinfo,显示内存统计数据
 [root@nginx01 ~]# vmstat -s
      7992344 K total memory
       157568 K used memory
       228976 K active memory
       110692 K inactive memory
      7492368 K free memory
         2108 K buffer memory
       340300 K swap cache
      4063228 K total swap
            0 K used swap
      4063228 K free swap
          437 non-nice user cpu ticks
           21 nice user cpu ticks
         1103 system cpu ticks
       846069 idle cpu ticks
         1245 IO-wait cpu ticks
            0 IRQ cpu ticks
           49 softirq cpu ticks
            0 stolen cpu ticks
       282163 pages paged in
        64401 pages paged out
            0 pages swapped in
            0 pages swapped out
       329354 interrupts
       307775 CPU context switches
   1654121630 boot time
         2006 forks
 # -d:列出磁盘的读写总量统计表
[root@localhost ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sr0       18      0    2056      72      0      0       0       0      0      0
sda     6535     14  313178    6045    715    156   35814     988      0      5
sdb      116      0    1856      23      0      0       0       0      0      0
sdc      102      0     816      13      0      0       0       0      0      0
sdd      131      0    1848      17      0      0       0       0      0      0
sde      102      0     816      10      0      0       0       0      0      0
sdf      102      0     816      12      0      0       0       0      0      0
dm-0    4825      0  250605    5533    851      0   27540    1278      0      4
dm-1      94      0    4456      27      0      0       0       0      0      0
dm-2     262      0    3551      62     10      0    4137      13      0      0
dm-3      43      0    2072      18      0      0       0       0      0      0
# 后面跟数字显示间隔时间和显示次数(下例:每秒一次,共显示3次)
[root@localhost ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 2336120   2108 201608    0    0    47     5   68  110  0  1 99  0  0
 0  0      0 2336096   2108 201608    0    0     0     0   50   49  0  0 100  0  0
 0  0      0 2336096   2108 201608    0    0     0     0   44   34  0  1 99  0  0
- proc字段
 * r:等待运行的进程数量
 * b不可被唤醒(不可中断睡眠)的进程数量(被阻塞队列长度)
 这两个项目越多,代表系统越忙碌
- memory字段
 * swpd:虚拟内存(交换内存)被使用的总量
 * free:未被使用的内存容量(空闲物理内存总量)
 * buff:用于缓冲存储器的内存总量
 * cache:用于高速缓存的内存总量
- swap字段
* si:数据进入swap中的数据速率(kb/s)
* so:数据离开swap中的数据速率(kb/s)
如果so/si的数值太大,表示内存中的数据常常得在磁盘与内存之间传输,系统性能极差
- io字段
 * bi:由块设备读入数据到系统的速率(kb/s)
 * bo:写入数据到块设备的速率
 这部分值越高,代表IO越忙碌
- system字段
 * in(interrupts):每秒被中断的进程次数
 * cs(context switch):每秒执行的事件切换次数
 这两个值越大,代表系统与外接设备的沟通越频繁
- cpu字段
 * us:非内核层(用户空间)的cpu使用状态
 * sy:内核层所使用的cpu状态
 * id(idle):闲置的状态
 * wa(wait):等待I/O所耗费的cpu状态
 * st():被虚拟机所使用的cpu状态
dstat
[root@nginx01 ~]# dstat 1 10
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0| 144k   22k|   0     0 |   0     0 | 152   129 
  0   0 100   0   0   0|   0     0 |  60B  842B|   0     0 | 109    94 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 |  89    79 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 | 104    96 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 |  97    88 
  0   0 100   0   0   0|   0     0 | 106B  422B|   0     0 |  95    86 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 |  91    83 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 |  94    86 
  0   0 100   0   0   0|   0   336k| 120B  422B|   0     0 | 139    95 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 |  93    84 
  0   0 100   0   0   0|   0     0 |  60B  362B|   0     0 |  90    81 
#--total-cpu-usage:CPU使用情况
#--dsk/total:磁盘读写速率
#--net/total:网络收发速率
#--paging:页面换入换出速率
#--system:中断和上下文切换速率

dstat [-afv] [options..] [delay [count]]
##选项
-c:显示CPU相关信息
  -C #,#...,total:
-d:显示disk相关信息
  -D total,sda
-g:显示Page相关统计数据
-i:显示中断统计数据
-l:显示load-avg信息
-m:显示内存相关信息
-n:显示网络相关信息
-p|--proc:显示进程统计数据(running,uninterruptable,new)
-r|--io:显示IO请求统计数据
-s:显示swap统计数据
-y:显示系统统计数据(interrupts中断, context switches上下文切换)
--fs|--filesystem:显示文件系统统计数据
--ipc:显示进程间通信统计数据(message queue消息队列,semaphores信号量,shared memory共享内存)
--lock:显示文件锁统计信息
--socket:显示socket统计信息(total,tcp,udp,raw,ip-fragments)
--tcp:显示TCP统计信息(listen,established,syn,time_wait,close)
--udp:显示UDP统计信息(listen,active)
--vm:显示VM统计信息(hard pagefaults,soft pagefaults,allocated,free)
--unix:显示unix统计信息(datagram,stream,listen,active)
-a: 默认,同-cdngy
--top-cpu:最消耗CPU的进程
--top-lantency:显示延迟最大的进程
--top-io:最消耗IO的进程
--top-mem:最消耗内存的进程
[root@nginx01 ~]# dstat -D total,sda
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total----dsk/sda-- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ: read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0| 121k   22k: 121k   22k|   0     0 |   0     0 | 139   118 
  0   0 100   0   0   0|   0     0 :   0     0 |  60B  954B|   0     0 |  62    51 
[root@nginx01 ~]# dstat -i
----interrupts---
  18    19    56 
   0     4     0 
   0     2     0 
[root@nginx01 ~]# dstat -l
---load-avg---
 1m   5m  15m 
   0 0.01 0.05
[root@nginx01 ~]# dstat -m
------memory-usage-----
 used  buff  cach  free
 207M 2108k  266M 7330M
 207M 2108k  266M 7330M
[root@nginx01 ~]# dstat -n
-net/total-
 recv  send
   0     0 
  60B  218B
[root@nginx01 ~]# dstat -p
---procs---
run blk new
  0   0 0.9
  0   0   0
[root@nginx01 ~]# dstat -r
--io/total-
 read  writ
1.96  0.21 
[root@nginx01 ~]# dstat --fs
--filesystem-
files  inodes
 1408  22784 
[root@nginx01 ~]# dstat --ipc
--sysv-ipc-
msg sem shm
  0   0   0
  [root@nginx01 ~]# dstat --lock
---file-locks--
pos lck rea wri
2.0 3.0   0 5.0
[root@nginx01 ~]# dstat --socket
------sockets------
tot tcp udp raw frg
573   5   2   0   0
573   5   2   0   0
[root@nginx01 ~]# dstat --tcp
----tcp-sockets----
lis act syn tim clo
  4   3   0   0   0
  4   3   0   0   0
  4   3   0   0   0
[root@nginx01 ~]# dstat --udp
--udp--
lis act
  3   0
[root@nginx01 ~]# dstat --vm
-----virtual-memory----
majpf minpf alloc  free
   0   424   282   894 
   0    13     1     2
[root@nginx01 ~]# dstat --unix
--unix-sockets-
dgm str lis act
 28 119  31  88
[root@nginx01 ~]# dstat -y
---system--
 int   csw 
 111    95 
[root@nginx01 ~]# dstat --top-cpu
-most-expensive-
  cpu process   
vmtoolsd     0.0

/proc/*

内存中的数据写入到/proc/*这个目录下

#加载内核时所执行的命令与参数,查看此文件可以了解命令是如何启动的
[root@localhost ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
#本机cpu的相关信息,包含频率、类型与功能等
[root@localhost ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 60
model name	: Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
stepping	: 3
microcode	: 0x24
cpu MHz		: 2594.007
cache size	: 3072 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt ibpb ibrs stibp arat spec_ctrl intel_stibp arch_capabilities
bogomips	: 5188.01
clflush size	: 64
cache_alignment	: 64
address sizes	: 43 bits physical, 48 bits virtual
power management:
#目前系统加载的文件系统
[root@localhost ~]# cat /proc/filesystems
nodev	sysfs
nodev	rootfs
nodev	ramfs
nodev	bdev
nodev	proc
nodev	cgroup
nodev	cpuset
nodev	tmpfs
nodev	devtmpfs
nodev	debugfs
nodev	securityfs
nodev	sockfs
nodev	dax
nodev	pipefs
nodev	anon_inodefs
nodev	configfs
nodev	devpts
nodev	hugetlbfs
nodev	autofs
nodev	pstore
nodev	mqueue
nodev	selinuxfs
	xfs
#目前系统IRQ分配状况
[root@localhost ~]# cat /proc/interrupts
            CPU0       
   0:        121   IO-APIC-edge      timer
   1:         10   IO-APIC-edge      i8042
   8:          1   IO-APIC-edge      rtc0
   9:          0   IO-APIC-fasteoi   acpi
  12:         16   IO-APIC-edge      i8042
  14:          0   IO-APIC-edge      ata_piix
  15:       5565   IO-APIC-edge      ata_piix
  16:          0   IO-APIC-fasteoi   vmwgfx, snd_ens1371
  17:       8186   IO-APIC-fasteoi   ehci_hcd:usb1, ioc0
  18:         65   IO-APIC-fasteoi   uhci_hcd:usb2
  19:       8850   IO-APIC-fasteoi   ens33
(..省略..)
# 使用free列出的内存信息
[root@localhost ~]# cat /proc/meminfo
MemTotal:        2719300 kB
MemFree:         2335980 kB
MemAvailable:    2335016 kB
Buffers:            2108 kB
Cached:           121180 kB
SwapCached:            0 kB
Active:           117380 kB
Inactive:          82676 kB
Active(anon):      77240 kB
Inactive(anon):     9300 kB
Active(file):      40140 kB
Inactive(file):    73376 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:        1048572 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         76792 kB
Mapped:            27188 kB
Shmem:              9772 kB
Slab:              80544 kB
SReclaimable:      39876 kB
SUnreclaim:        40668 kB
KernelStack:        4128 kB
PageTables:         5728 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2408220 kB
Committed_AS:     349268 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      186756 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:     10240 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      163712 kB
DirectMap2M:     1753088 kB
DirectMap1G:     1048576 kB
#Linux已经加载的模块列表,也可以想成是驱动程序
[root@localhost ~]# cat /proc/modules
af_packet_diag 12611 0 - Live 0xffffffffc06fb000
netlink_diag 12669 0 - Live 0xffffffffc06f6000
vsock_diag 12610 0 - Live 0xffffffffc06f1000
sctp_diag 12845 0 - Live 0xffffffffc0701000
sctp 270556 3 sctp_diag, Live 0xffffffffc06ad000
udp_diag 12801 0 - Live 0xffffffffc06a8000
unix_diag 12601 0 - Live 0xffffffffc06a3000
tcp_diag 12591 0 - Live 0xffffffffc069e000
(..省略..)
#系统已挂载的数据,就是用mount这个命令调出来的数据
[root@localhost ~]# cat /proc/mounts
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=1347420k,nr_inodes=336855,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
(..省略..)
#系统已经挂载入的内存在哪里?使用的硬盘记录在此
[root@localhost ~]# cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	1048572	0	-1
#使用fdisk -l会出现目前所有的硬盘分区
[root@localhost ~]# cat /proc/partitions
major minor  #blocks  name

  11        0    4365312 sr0
   8        0   20971520 sda
   8        1       2048 sda1
   8        2    1048576 sda2
   8        3   16785408 sda3
   8       16    1048576 sdb
   8       32    1048576 sdc
   8       48    1048576 sdd
   8       64    1048576 sde
   8       80    1048576 sdf
 253        0   10485760 dm-0
 253        1    1048576 dm-1
 253        2    5242880 dm-2
 253        3    2621440 dm-3
 #uptime第一行的后三个值(负载值)
[root@localhost ~]# cat /proc/loadavg
0.00 0.01 0.05 2/133 2503
#内核的版本
[root@localhost ~]# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
kill 进程
kill可以帮我们将这个信号传送给某个任务(%jobnumber)或者某个PID
#显示支持的信号
[root@nginx01 ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	
重要信号:
	1(SIGHUP):让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
	2(SIGINT):ctrl+c 中止正在运行的进程
	9(SIGKILL):杀死一个进程
	15(SIGTERM):终止一个进程
    18(SIGCONT)19(SIGSTOP):
指定信号的方法:
  1)信号的数字标识:1,2,9
  2)信号完整名称:SIGUP
  3)信号的简写名称:HUP
kill -singal PID 默认使用15信号终止进程
killall 删除服务
-i:interactive:互动的意思,若需要删除时,会出现提示字符给使用者

killall -singal program 杀死所有进程

bg(background),fg(foreground)
前台(fg):占用了命令提示符
后台(bg):启动之后,释放命令提示符,后续的操作在后台执行
前台-->后台,
	使用ctrl+z:将正在前台运行的命令切换至后台
	command &:让命令在后台运行
	nohup command &:送往后台,剥离与终端的关系
bg:让后台停止的作业继续运行
	bg [%JOBID]
fg:将后台停止的作业继续运行
	fg [%JOBID]
jobs:查看后台的所有作业
作业号,不同于进程号
		+:将默认操作的作业
		-:将第二个默认操作的作业
#查看所有的作业
[root@nginx01 ~]# jobs
[1]   Stopped                 htop
[2]-  Stopped                 dstat
[3]+  Stopped                 top
pidof:查看某个正在执行的进程的PID
[root@lotus ~]# pidof init
1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值