UP | HOME

系统资源查看命令

目录

man 命令

参数:

-f:将所有可用的页都列出来

ps 命令

参数:

-A:显示所有的进程,与-e 效果一样;

-a:显示不与 terminal 有关的所有进程;

-U userlist:显示所有实际 user ID 或 user name 与 userlist 相同的进程;

-u userlist:显示所有有效 user ID 或 user name 与 userlist 相同的进程;


输出格式规划:

l:较长、较详细地将该 PID 的所有信息列出;

j:工作的格式(jobs format);

ps aux 查看所有进程

ps axjf 类似进程树的程序显示


STAT 字段解释 * D 不可中断睡眠状态(通常是 IO) * R 运行中或者可运行的(在运行队列中)状态 * S 可中断的睡眠状态 (等待一个事件完成后唤醒) * T 停止状态,或者通过一个任务控制信号或者它正在被跟踪 * W 分页中状态(在 2.6.xx 内核以后不再使用) * X 死亡状态(以后不可见) * Z 不工作("僵尸")进程,被终止的进程但是没有被父进程回收


想要找出哪些在运行队列中的进程,可以采用

ps r -A

列出所有在运行队列中的进程

以下命令列出所有在运行状态的进程和线程

ps -o comm,pid,ppid,user,time,etime,start,pcpu,state --sort=comm aH | grep '^COMMAND\|R$'

按虚拟内存大小排序进程

ps awwlx --sort=vsz


load average 定义

load average 并不是表示 CPU 的繁忙程度,而是度量系统整体负载。这个数值是是运行队列(状态 R)和等待磁盘 I/O(状态 D)的任务数的分钟级平均值。


top 命令

参数:

-d seconds:整个进程界面 seconds 秒更新一次;

-p PID:指定 PID 进程监测;

在 top 执行过程中可以输入的命令:

?:显示所有可以输入的命令;

P:以 CPU 的使用率排序;

M:以内存的使用率排序;

N:以 PID 排序;

T:以 CPU 时间累计(TIME+)排序;

r:给予某个 PID 一个新的 nice 值;

pstree 命令

参数: -A:进程树之间以 ASCII 字符来连接;

-U:进程数之间以 UTF8 码的字符来连接(默认);

-p:同时列出进程的 PID;

-u:同时列出进程的所属用户;

free 命令

参数:

-b|m|k|g:直接输入 free 时,显示的单位是 KB,我们还可以使用 b(bytes),m(MB),k(KB),及 g(GB)来显示单位

-t:在结果中显示物理内存与 swap 的总量。

uname 命令

参数:

-a:显示所有系统的相关信息;

netstat

参数:

-a:显示目前系统上所有的连接、监听、Socket 数据;

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

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

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

-l:列出目前在监听(listen)的服务;

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

netstat -tulnp 显示目前已经启动的网络服务

netstat -atunp 查看本机上所有的网络连接状态

netstat -tlnp 显示目前系统上已在监听的网络连接及其 PID

netstat -anop 可以显示侦听在这个端口号的进程(?)

vmstat 命令

参数:

-a:使用 inactive/active(活跃与否)替代 buffer/cache 的内存输出信息;

-f:开机到目前为止系统 fork 的进程数;

-s:显示内存、CPU 等的事件统计表;

-S:后接数据显示的单位。

-d:列出磁盘的读写总量统计表;

-p:后接分区,显示该分区的读写总量统计;

关于数据不对齐的问题,可以将单位换成 M 暂时解决问题

lsof 命令

可以通过 lsof -p $pid 来查看某个进程的详细打开的文件


lsof -i :portNumber

lsof -i tcp:portNumber

lsof -i udp:portNumber

lsof -i :80

    `lsof -i :portNumber` 可以显示双向的端口连接

    执行lsof需要root权限,否则无法显示非自己属主的进程的端口使用

作者: Petrus.Z

Created: 2021-09-01 Wed 00:38