ps默认只会显示进程ID(PID)、运行在哪个终端(TTY)以及进程医用的CPU时间
[root@wcyzf ~]# ps PID TTY TIME CMD 3778880 pts/0 00:00:00 bash 3787406 pts/0 00:00:00 ps
ps -ef
[root@wcyzf ~]# ps -ef | head -10 UID PID PPID C STIME TTY TIME CMD root 1 0 0 Apr20 ? 00:05:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 18 root 2 0 0 Apr20 ? 00:00:00 [kthreadd] root 3 2 0 Apr20 ? 00:00:00 [rcu_gp] root 4 2 0 Apr20 ? 00:00:00 [rcu_par_gp] root 6 2 0 Apr20 ? 00:00:00 [kworker/0:0H-events_highpri] root 8 2 0 Apr20 ? 00:00:00 [mm_percpu_wq] root 9 2 0 Apr20 ? 00:00:00 [rcu_tasks_rude_] root 10 2 0 Apr20 ? 00:00:00 [rcu_tasks_trace] root 11 2 0 Apr20 ? 00:03:02 [ksoftirqd/0]
PID进程号
PPID父进程
C进程生命周期中的CPU利用率
STIME进程启动时的系统时间
TIME运行进程所需要的累计CPU时间
CMD启动的程序名称
与ls -l类似,ps -l 会产生一个长格式输出
ps命令虽然在收集运行在系统上的进程信息时非常有用,但是它只能显示某个特定时间点的信息,想观看频繁换进换出的内存的进程趋势,ps不是很方便
top则可以显示实时的进程信息
第一行显示了当前时间,系统运行时间,登入的用户数量已经系统的平均负载
平均负载有三个值,最近的1分钟,最近5分钟,最近15分钟,值越大说明负载越高,
第二行显示了进程概要信息--top命令的输出中将进程叫作任务(task):有多少进程处在运行,休眠、停止或是僵化状态(指进程完成了,但父进程没有响应)
第三行显示cpu的概要信息,根据进程的属主(系统还是用户)和进程状态(运行、空闲还是等待)将cpu的利用率分成几类输出
第四行说明的是系统的物理内存:总的有多少内存、当前用了多少、还剩多少。
第五行显示的是交换空间
PR:进程的优先级
NI:进程的谦让度值
VIRT:进程占用的虚拟内存总量
RES:进程占用的物理内存总量
SHR:进程和其他进程共享的内存总量
S:进程的状态(D表示可中断的休眠状态,R代表正在运行状态,S表示休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)
%CPU:进程使用的CPU时间比例
%MEM:进程使用的内存占可用内存占可用内存的比例
top - 13:44:52 up 13 days, 2:50, 1 user, load average: 299.84, 300.02, 300.99 Tasks: 1688 total, 115 running, 1573 sleeping, 0 stopped, 0 zombie %Cpu(s): 40.3 us, 58.4 sy, 0.1 ni, 0.0 id, 0.0 wa, 0.6 hi, 0.5 si, 0.0 st MiB Mem : 3725.6 total, 294.5 free, 2875.3 used, 555.9 buff/cache MiB Swap: 0.0 total, 0.0 free, 0.0 used. 558.5 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1199933 root 10 -10 148404 30728 0 S 4.2 0.8 94:25.73 AliYunDun 966196 root 20 0 228840 6480 3996 R 1.2 0.2 0:00.21 top 481846 es 20 0 222712 2292 1392 S 0.5 0.1 20:07.34 bash 969913 es 20 0 222584 2348 1500 S 0.5 0.1 4:57.42 bash 1271438 es 20 0 222584 2392 1540 S 0.5 0.1 3:31.59 bash 1283435 es 20 0 222712 2372 1504 S 0.5 0.1 9:58.13 bash 1577590 es 20 0 222584 2280 1428 S 0.5 0.1 5:07.86 bash 1751691 es 20 0 222584 2284 1448 S 0.5 0.1 0:41.51 bash 2064618 es 20 0 222712 2316 1436 S 0.5 0.1 12:24.85 bash 2190316 es 20 0 222584 2288 1432 S 0.5 0.1 5:16.07 bash 2259603 es 20 0 222584 2352 1500 S 0.5 0.1 3:10.95 bash 2354732 es 20 0 222712 2328 1452 S 0.5 0.1 10:44.07 bash 3252244 es 20 0 222712 2344 1440 S 0.5 0.1 25:16.01 bash 3713730 es 20 0 222584 2340 1500 S 0.5 0.1 0:39.21 bash 12 root 20 0 0 0 0 I 0.2 0.0 29:40.87 rcu_sched 1257 root 20 0 25744 1800 0 S 0.2 0.0 27:01.50 AliYunDunUpdate 2342 es 20 0 222712 2384 1484 S 0.2 0.1 18:34.73 bash 3771 es 20 0 222712 2360 1440 S 0.2 0.1 813:57.09 bash
kill命令
kill可通过进程ID给进程发信号,但是无法使用进程名
killall命令非常强大,可通过进程名来结束进程,也支持通配符