ps命令可以以快照的方式,一次显示所有或部分系统进程.
ps a :当前和中断相关进程
[root@centos ~]# ps a PID TTY STAT TIME COMMAND 2358 tty3 Ss+ 0:00 /sbin/mingetty /dev/tty3 2360 tty4 Ss+ 0:00 /sbin/mingetty /dev/tty4 2362 tty5 Ss+ 0:00 /sbin/mingetty /dev/tty5 2367 tty6 Ss+ 0:00 /sbin/mingetty /dev/tty6 2389 tty1 Ss+ 0:03 /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/au 41983 tty2 Ss+ 0:00 /sbin/mingetty /dev/tty2 44250 pts/0 Ss 0:00 -bash 44313 pts/1 Ss+ 0:00 -bash 44365 pts/0 R+ 0:00 ps a #tty1-6是时间中断, tty1打开的是图形界面 #pts/0,1是虚拟中断, 也就是远程通过ssh打开的控制界面 #最后一行表示当前是pts/0在运行ps a命令
ps x : 显示与中断无关的进程
[root@centos ~]# ps x PID TTY STAT TIME COMMAND 1 ? Ss 0:01 /sbin/init 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [migration/0] 4 ? S 0:02 [ksoftirqd/0] 5 ? S 0:00 [stopper/0] 6 ? S 0:00 [watchdog/0] 7 ? S 2:10 [events/0] 8 ? S 0:00 [cgroup] 9 ? S 0:00 [khelper] 10 ? S 0:00 [netns] #只复制了一部分, 包括系统自己的进程和系统启动时自动启动的进程
ps axu: 以详细的方式显示所有进程
[root@centos ~]# ps axu USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 19364 1484 ? Ss Oct06 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S Oct06 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Oct06 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S Oct06 0:02 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S Oct06 0:00 [stopper/0] root 6 0.0 0.0 0 0 ? S Oct06 0:00 [watchdog/0] root 7 0.0 0.0 0 0 ? S Oct06 2:10 [events/0] root 8 0.0 0.0 0 0 ? S Oct06 0:00 [cgroup] root 9 0.0 0.0 0 0 ? S Oct06 0:00 [khelper] root 10 0.0 0.0 0 0 ? S Oct06 0:00 [netns] root 11 0.0 0.0 0 0 ? S Oct06 0:00 [async/mgr]
USER:进程是由那个用户运行
PID: 进程号
%CPU: 占用CPU百分比
%MEM: 占用内存百分比
VSZ Virutal Memory Size: 虚拟内存大小, 一般是线程指令大小+总共可用的共享内存+总共占用内存大小(包括swap)
RSS Resident Set Size: 是以内存占用大小, 实际用指令大小+实际共享内存大小+时间占用内存大小(不包括swap)
TTY:程序需在哪个终端运行, tty1-6, pts/0,1,2...
STAT:进程状态
S: 中断睡眠, 等待其他进程或事件来唤醒.
s: 这个进程是父进程
D: 不可中断睡眠, 一般是等待IO完成
R: 运行状态
T:停止状态
Z: 僵死状态, 父进程丢失了的子进程
+: 进程在前台
-: 进程在后台
N: 低优先级进程
<: 高优先级进程
START: 进程开始时间
TIME: 进程运行时间
COOMMAND: 进程的运行程序, 在中括号中的为内核进程
top命令
top - 15:56:19 up 1 day, 22:10, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 122 total, 1 running, 121 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1012292k total, 895776k used, 116516k free, 174832k buffers Swap: 2031612k total, 668k used, 2030944k free, 346588k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1484 1208 S 0.0 0.1 0:01.94 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
top:分别显示
当前时间 在线时间, 几个用户在线, 过去1分钟, 5分钟, 15分钟的系统平均负载值大小
系统平均负载值大不代表有瓶颈, 还要根据vmstat具体分析
Tasks:一共多少个进程, 有几个在运行, 有几个睡眠状态, 几个停止, 几个僵尸状体
Cups: us: 用户空间的cpu占有率, sy:内核空间的cpu占有率, ni:用户空间更改过nice值的进程cpu的占有率, id: 空闲进程cpu占有率, wa:等待I/O完成的进程的CPU占有率, hi: 硬中断占用百分比. si: 软中断占用百分比. st: 虚拟机占用控件百分比.
Mem: , Swap: 分别表示内存和交换空间的占用信息.
buffers: 写入缓存
cached: 读缓存
vmstat命令
[root@centos ~]# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 664 115028 176072 346644 0 0 4 5 31 48 0 0 100 0 0
procs
r:进程队列的长度, 太长说明cpu慢
b: 阻塞队列长度, 太长说明I/O慢
memory
swap:物理内存放到硬盘大小
free: 物理内存多少空闲
buff: 缓冲, 加快写速度
cache: 缓存, 加快读速度
swap
si: 写入swap速度 kb/s
so: 读取swap速度 kb/s
io
bi: 块设备写入内存速度 kb/s
bo: 块设备读取内存速度kb/s
system
in:cpu中断速率
cs:cpu上下文切换速率