失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 系统资源查看与进程管理

系统资源查看与进程管理

时间:2020-01-19 09:58:52

相关推荐

系统资源查看与进程管理

0. cpu相关

0.1 uptime 查看cpu平均负载

分别显示近1、5、15分钟的cpu平均负载情况

1. 系统资源查看

1.1 free: 显示内存使用情况

-b: bytes

-k: KB

-m: MB

-g: GB

Mem: 物理内存; Swap: 虚拟内存(最好不要超过20%,系统使用到swap说明物理内存不足)。

1.2 uname: 查看系统与内核相关信息

-a: 所有系统相关信息

-s: 系统内核名称

-r: 内核版本

-m: 硬件名称

-p: cpu类型

-i: 硬件平台

1.3 netstat: 网络监控

-a: 列出当前系统上所有的连接、监听、Socket数据;

-t: 列出tcp网络数据包的数据;

-u: 列出udp网络数据包的数据;

-n: 不列出进程的服务名称,以端口号port来显示;

-l: 列出当前正在监听listen的服务;

-p: 列出该网络服务的PID;

1.3.1 列出当前系统已新建的网络连接与unix socket 状态

netstat输出分为两部分,

1. 网络的连接

Proto: 网络的数据包协议,主要包括TCP与UDP数据包;

Recv-Q: 非由用户进程连接到此socket的复制的总字节数;

Send-Q: 非由远程主机传送过来的acknowledged总字节数;

LocalAddress: 本地的IP端口情况;

ForeignAddress: 远程主机的IP端口情况;

State: 连接状态(ESTABLISED:建立,LISTEN:监听);

2. socket程序部分

socket file 可以沟通两个进程之间的信息,因此进程可以取得对方传送过来的数据,目前新版的distributions 就以socket来进行窗口界面的联机通信。

socket file 的输出字段如下:

Proto: 一般就是unix;

RefCnt: 连接到此socket的进程数量;

Flags: 连接的标识;

Type: socket的访问类型(STREAM:需要确认连接;DGRAM:不需确认);

State: 连接状态;

Path: 相关数据输出路径;

1.3.2 列出当前系统上已在监听的网络及其PID

1.4 dmesg分析内核产生的信息

系统开机的时候,内核会去检测系统的硬件

# 查找开机时硬盘的相关信息dmesg | grep -i hd

1.5 vmstat: 检测系统资源变化

vmstat 可以检测CPU/内存/磁盘输入输出状态等。

统计目前主机CPU状态,每2s一次,共计3次。

------procs 内存字段------

r: 等待运行中的进程数量

b: 不可被唤醒的进程数量

------memory 内存字段------

swpd: 已使用的虚拟内存大小

free: 未被使用的内存量

buff: 缓冲存储器

cache: 高速缓存

------swap 内存交换空间------

si: 由磁盘中将程序取出的量

so: 由于内存不足而将没用到的程序写入到磁盘的swap容量

------io 磁盘读写------

bi: 由磁盘写入的块数量

bo: 写入到磁盘去的块数量

------system------

in: 每秒被中断的进程次数

cs: 每秒进行的事件切换次数

------CPU------

us: 非内核层的cpu使用状态

sy: 内核层cpu使用状态

id: 闲置的状态

wa: 等待I/O所耗费的cpu状态

st: 被虚拟机所盗用的cpu使用状态

2. 进程管理

2.1 ps: 查看某个时间点的进程运行情况

# 查看系统所有进程数据ps auxps -lAps -ef# 查看系统所有进程数据,连同部分进程树状态ps axjf常见参数:-A 显示所有进程(同-e)-u 有效用户相关进程-f 完整格式输出

2.1.1 ps aux 查看系统所有进程

USER: 进程所属用户%CPU: 使用CPU%MEM: 使用物理内存VSZ:使用虚拟内存量(KB)RSS:占有固定内存量(KB)TTY:运行的终端机STAT: 进程目前状态START: 进程被触发启动的时间TIME: 进程实际花费的cpu运行时间;COMMAND: 此进程的触发命令

2.1.2 ps -l 仅查看自己bash相关进程

F: 代表进程标志(process flags),说明进程的权限4:权限为root; 1:此子进程仅可复制fork,而无法执行exec;S: 代表进程状态(STAT)R: runing; S: sleep; D: 不可唤醒的睡眠状态(可能在等待IO)T: stop 后台暂停或除错(traced)状态; Z: 僵尸状态,已经终止却无法被删除C:cpu使用率PRI/NI: (Priority/Nice),代表进程被cpu执行的优先级,越小优先级越高ADDR: 是kernel function,指出进程在内存的哪个部分,-代表running;SZ:代表进程用掉多少内存WCHAN: 目前进程是否正在运行,-代表running;TTY: 终端机位置,pts/n 代表远程登录;TIME: 进程实际花费的cpu运行时间;CMD: 此进程的触发命令

2.1.3 pstree 显示进程树

僵尸(zombie)进程:该进程已经执行完毕,或者因故应该要终止了,但其父进程却无法完整的将该进程结束掉,而造成其一直存在内存中。

若某进程的CMD后面还接上<defunct>时,其就是僵尸进程。

2.2 top: 动态查看进程的变化

可以持续监测系统进程工作状态(默认5s更新一次)

top [-d 数字] | top [-bnp]-d: 每n秒更新一次top,默认5s-b: 以批次的方式执行top-n: 与-b搭配,表示需要进行几次top的输出结果-p: 监测指定PID在top中可以使用的命令?: 显示可以输入的按键命令P: 以cpu使用率排序M: 以内存使用率排序N: 以PID排序T: 由该进程使用的cpu时间累积(TIME+)排序k: 给予某个PID一个signalr: 给予某个PID重新制定一个nice值q: 离开top

top显示内容分为两部分,上面为系统资源使用状态,共六行。

第1行:目前的时间: 17:13:56开机到当前所经历的时间: up 166 days, 23:31已登录系统的用户数: 6 users系统在1,5,15min的平均工作负载: 0.00,0.01,0.05 代表系统要负责运行几个进程,>1表示系统压力太大。第2行: 显示目前进程的总数与个别进程的状态,需注意zombie。第3行: 显示cpu的整体负载,%wa代表I/Owait,若数值较大,系统会很慢。对于多核设备,可以按“1”进行不同cpu负载率的切换。第4行: 显示目前物理内存的使用情况。第5行: 显示目前虚拟内存的使用情况,主要不要大量使用swap。第6行: 当在top中输入命令时显示状态(背景行的上一行)。

下方界面为每个进程使用资源的情况:

PID: 进程IDUSER: 进程所属用户PR: Priority进程优先级,越小优先级越高NI:Nice与PR类似VIRT: 虚拟内存用量RES: 物理内存用量SHR: 共享内存用量%CPU: cpu使用率(top默认以此排序)%MEM: 内存使用率TIME+: CPU使用时间的累加

一些例子:

# 查看111进程,每2s更新1次top -d 2 -p 111# 将top信息进行2次,结果输出到 top.txttop -b -n 2 -p > top.txt

2.3 kill: 进程的管理

# 杀死PID为111的进程(kill命令将signal(9)传送给PID为111的进程)kill -9 111

如果觉得《系统资源查看与进程管理》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。