Skip to content

https://www.cnblogs.com/niuben/p/15055255.html

ps

  • ps 命令用于显示当前进程的状态。(process status)
  • 命令格式:ps [options]
bash
options 参数解释
-A/a      列出所有的进程
-e        等于 “-A”
-f         显示程序间的关系
-w        显示加宽可以显示较多的资讯
au       显示较详细的资讯
aux      显示所有包含其他使用者的进程
  • 注意:ps aux 不建议加-,可能会出现不兼容的问题

ps -ef 各项指标解释

bash
# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  6 18:39 pts/0    00:02:27 java -jar /opt/lp-admin.jar
root        102      0  0 18:40 pts/1    00:00:00 /bin/bash
root        158    102  0 18:47 pts/1    00:00:00 /usr/bin/python /usr/bin/dstat
---------各项指标解析-----------------------
UID    程序的执行者 UID
PID    进程的ID号
PPID   则是其上级父程序的ID
C      cpu 使用的资源百分比
TTY    登入者的终端机位置
TIME   CPU 执行的时间
CMD    进程执行的命令

ps aux 各项指标解释

点击查看完整代码实现
点击查看完整代码实现
bash
# ps -aux
ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  7.0  5.3 13278220 1736948 pts/0 Ssl+ 18:39   2:24 java -jar /opt/lp-admin.jar
root        102  0.0  0.0  15264  2044 pts/1    Ss   18:40   0:00 /bin/bash
root        158  0.0  0.0  52176  6756 pts/1    T    18:47   0:00 /usr/bin/python /usr/bin/dstat
root        159  0.0  0.0  52176  6756 pts/1    T    18:49   0:00 /usr/bin/python /usr/bin/dstat -n -N eth0,total
---------各项指标解析-----------------------
USER    行程拥有者
PID     pid
%CPU    占用的 CPU 使用率
%MEM    占用的记忆体使用率
VSZ     占用的虚拟记忆体大小
RSS     占用的记忆体大小
TTY     终端的次要装置号码 (minor device number of tty)
STAT    该进程程的状态:
   D:  无法中断的休眠状态 (通常 IO 的进程)
   R:  正在执行中
   S:  可中断的睡眠状态
   T:  暂停状态或跟踪状态
   Z:  僵尸进程(zombie),无法正常终止
   X: 退出状态,进程即将被销毁
START   登入者的终端机位置
TIME    CPU 执行的时间
COMMAND 进程执行的命令

:::

lsof

  • lsof(List Open Files) 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。
  • 命令格式:lsof [options] filename
bash
options 参数解释

-a            列出打开文件存在的进程
-c<进程名>     列出指定进程所打开的文件(常用)
-p<进程号>     列出指定进程号所打开的文件(常用)
-g            列出属于gid的进程详情
-u<uname/uid> 显示归属uname或uid的进程情况
-d<fd文件号>   列出占用该文件号的进程
+d<目录>       列出目录下被打开的文件
+D<目录>       递归列出目录下被打开的文件
-n<目录>       列出使用NFS的文件
-i<条件>       列出符合条件的进程。(ip4/ip6协议、端口、 @ip
-u            列出UID号进程详情

各指标解释

shell
# lsof
command  PID USER   FD   type   DEVICE     SIZE     NODE  NAME
init       1 root  txt   REG       8,2    43496  6121706 /sbin/init

---------各项指标解析-----------------------
COMMAND  进程的名称 
PID      进程标识符 
USER     进程所有者 
FD       文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 
TYPE     文件类型,如DIR、REG等 
DEVICE   指定磁盘的名称 
SIZE     文件的大小 
NODE     索引节点(文件在磁盘上的标识) 
NAME     打开文件的确切名称

top

  • top 命令是用来监控Linux系统状况,比如cpu、内存,进程等资源使用情况。
  • 命令格式:top [-options]
bash
options 选项参数

-i<时间>    设置刷新间隔时间
-u<用户名>    指定用户名
-p<进程号>    指定进程
-H           开启线程查看

top 各项输出指标解释

点击查看完整代码实现
点击查看完整代码实现
bash
# top
top - 18:20:27 up 26 days,  8:30,  2 users,  load average: 0.04, 0.09, 0.13
Tasks: 168 total,   1 running, 167 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.5 sy,  0.0 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:  32762356 total, 14675196 used, 18087160 free,      884 buffers
KiB Swap:  2103292 total,        0 used,  2103292 free.  6580028 cached Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                
1260 root      20   0 7933492 1.173g  14004 S 0.333 3.753  58:20.74 java                       
1503 root      20   0   69172   2240   1412 S 0.333 0.007   0:48.05 httpd                       
1520 daemon    20   0  358140   3980    776 S 0.333 0.012   6:19.55 httpd                       
2323 mysql     20   0 19.918g 4.538g   9404 S 0.333 14.52 352:51.44 mysqld                     
.......
---------各项指标解析---------------------------------------------------
第一行统计信息区
    18:20:27                     当前时间
    up 25 days, 17:29             系统运行时间,格式为时:分
    1 user                     当前登录用户数
    load average: 0.04, 0.09, 0.13  系统负载,三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

Tasks:进程相关信息
    running   正在运行的进程数
    sleeping  睡眠的进程数
    stopped   停止的进程数
    zombie    僵尸进程数
Cpu(s):CPU相关信息
    %us:表示用户空间程序的cpu使用率(没有通过nice调度)
    %sy:表示系统空间的cpu使用率,主要是内核程序
    %ni:表示用户空间且通过nice调度过的程序的cpu使用率
    %id:空闲cpu
    %wa:cpu运行时在等待io的时间
    %hi:cpu处理硬中断的数量
    %si:cpu处理软中断的数量
    %st:被虚拟机偷走的cpu
Mem  内存信息  
    total 物理内存总量
    used 使用的物理内存总量
    free 空闲内存总量
    buffers 用作内核缓存的内存量
Swap 内存信息  
    total 交换区总量
    used 使用的交换区总量
    free 空闲交换区总量
    cached 缓冲的交换区总量

~~ 常用的指标
PID 进程id
PPID 父进程id
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
S       进程状态; 相关枚举值解释查看 ps -ef S 项解释
COMMAND 进程启动执行的命令行

:::

top 命令下,查看信息常用快捷键

点击查看完整代码实现
点击查看完整代码实现
bash
h    显示快捷键帮助
k    终止一个进程
i    开/关忽略闲置和僵死进程
q    退出程序
r    重新安排一个进程的优先级别
S     切换到累计模式
s    更改刷新间隔时间,单位秒
f,F    从当前显示中添加或者删除项目
o,O    改变显示项目的顺序
l    切换显示平均负载和启动时间信息
m     切换显示内存信息
t    切换显示进程和CPU状态信息
c    切换显示命令名称和完整命令行
M     根据内存使用大小排序
P    根据CPU使用率进行排序 (默认排序)
T    根据时间/累计时间进行排序
1    展开多核cpu显示
H       线程查看模式切换为开或关

:::

free

  • free 可查看系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
  • 命令格式:free [-bkmg][-hlot][s delay][-c count]
bash
free 选项参数

 -b,-k,-m,-g  表示输出显示的单位为 bytes,KB,MB,or GB,不添加选项的话默认以 KB 为单位显示
 -h          以人类可读的方式显示,即后边会自动带上单位
 -l          显示详细的低内存和高内存统计信息(增加了 Low High 这两行显示)
 -o          使用旧的格式显示(不显示 -/+buffers/cache 这一行)
 -t          增加显示 Total 行,Total = Mem + Swap
 -s delay delay 秒重复打印一次,delay 为具体的秒数
 -c count    循环打印 count 次后退出,count 为具体的次数。需要配合 -s delay 使用

参数解释

点击查看完整代码实现
点击查看完整代码实现
bash
# free -m
             total       used       free     shared    buffers     cached
Mem:         32107      30414       1692          0       1962       8489
-/+ buffers/cache:      19962      12144
Swap:            0          0          0
------各项指标解释-------------------------------------------------
Mem 表示物理内存统计:
 total   物理内存总量,total = used + free
 used    总使用缓存的数量(包含 buffers cache),但其中可能部分缓存并未实际使用
 free    未被分配的内存
 shared  共享内存,一般系统不会用到,总是0
 buffers  系统分配但未被使用的 buffers 数量
 cached  系统分配但未被使用的 cache 数量
 
-/+ buffers/cache:
 used    实际使用内存,等于第一行的 used - buffers - cached
 free    实际可用内存,等于第一行的 free + buffers + cached

Swap表示交换区的使用情况,也就是我们通常所说的虚拟内存
 total   总量虚拟内存
 used    使用的虚拟内存
 free    空闲的虚拟内存

:::

netstat

  • netstat 命令用于显示各种网络相关信息,如网络连接,路由表,网络连接状态。

  • 命令格式:netstat [-options]

bash
options 参数解析

-a (all)显示所有选项,默认不显示 Listen 相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令

各项输出指标解析

bash
# netstat -pt 
Proto Recv-Q Send-Q Local Address   Foreign Address  State   PID/Program name  
tcp        0      0 localhost:30037 *:*              LISTEN  2109/firefox
....
------各项指标解析----------------------------------------
Proto           协议
Recv-Q          接收队列 ,一般都应该是0。如果不是则表示软件包正在队列中堆积
Send-Q          发送队列,一般都应该是0。如果不是则表示软件包正在队列中堆积
Local Address   本地地址+port
Foreign Address 远端地址+port
State           状态
PID             进程pid
Program name    进程名

正在精进