系统资源查看命令
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权限,否则无法显示非自己属主的进程的端口使用