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 进程名