进程管理命令
查看进程命令
ps命令
显示系统上运行的进程列表
1 | 查看系统中所有正在运行的系统 |
显示的内容
- USER 哪个用户产生的
- PID 进程的ID号
- %CPU 该进程占用CPU资源的百分比
- %MEM 该进程占用物理内存的百分比
- VSZ 该进程占用虚拟内存的大小,单位KB
- RSS 该进程占用实际物理内存的大小,单位KB
- TTY 该进程是在哪个终端中运行的。tty1-tty7代表本地控制台终端,tty1-tty6是本地字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端,一般是远程连接的终端,第一个远程连接占用的是pts/0终端,依次递增,?表示由内核直接启动的,是系统进程
- STAT 进程状态。
- D表示不可唤醒的睡眠状态,通常用于I/O情况
- R表示进程正在进行
- S表示进程在睡眠状态,可被唤醒
- T表示停止状态,可能是在后台暂停或进程在出错状态
- W表示内存交互状态
- X表示死掉的进程
- Z表示僵尸进程。进程已经终止,但是部分程序还在内存当中
- <表示高优先级
- N表示低优先级
- L表示被锁入内存
- s表示饱汉子进程
- l表示多线程
- +表示位于后台
- START 该进程的启动时间
- TIME 该进程占用CPU的运算时间
- COMMAND 产生此进程的命令
top命令
实时对系统处理器状态进行监控
1 | top -p 1298 |
显示的内容
第一行是任务队列信息,返回信息与uptime类似,系统当前时间、系统运行了多长时间、有多少用户正在使用该系统、系统每隔1分钟、5分钟、15分钟的平均负载
第二行是进程统计信息,分别为总数、正在运行的数量、睡眠的数量、停止的数量、僵尸数
第三行 %Cpu一行中展示的是cpu的使用情况
- us (User time)表示用户进程占用的时间
- sy (System time)表示系统进程占用的时间 us+sy一般合理值是在60-85%,超过85则会影响吞吐量
- ni (Nice time)表示系统花费在调整进程优先级上的时间
- id (Idle time)一般大于40,表示CPU空闲时间,id经常小于40,表示cpu的负荷很重
- wa (Waiting time)一般应小于25%,表示用于等待IO完成的CPU时间,超过25%的wa的值可以表示子系统可能没有被正确平衡,也可能是磁盘密集工作负载的结果,系统的磁盘或其它I/o可能有问题,可以通过iostat/SAR –C命令进一步分解分析
- hi (Hardirq time)表示处理硬件中断的CPU时间
- si (Softirq time)表示处理软件中断的CPU时间
- st (Steal time)表示当前CPU被强制(involuntary wait )等待另外虚拟的CPU处理完毕时花费的时间,此时 hypervisor 在为另一个虚拟处理器服务
最下边一栏是进程信息区
- PR 进程优先级
- VIRT 进程使用的虚拟内存总量。VIRT=SWAP+RES
- RES 进程使用的、未被换出的物理内存大小。RES=CODE+DATA
- SHR 共享内存大小
- S 进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,T表示跟踪/停止,Z表示僵死进程
如果想查看每个CPU的利用率,可以按1来查看每个cpu核的利用率了
pstree命令
可以查看到依赖关系
1 | pstree -aup |
pgrep命令
查找当前运行的进程,并列出匹配的pid
1 | pgrep mysql |
pmap命令
显示进程调用的各种库分别占用内存的情况,可以看到所有内存地址的详细信息,而且还显示了启动进程的命令
1 | 通过进程id来查找 |
mpstat命令
显示多处理器系统的CPU使用率,这些信息存放在/proc/stat文件中
杀死进程命令
1 | 强制关闭指定进程 |
pidstat命令
1 | 指令 |
进程内存文件
linux中,在/proc/{pid}目录下存储指定进程的相关信息,其中/proc/{PID}/smaps 文件中记录着当前进程所对应的内存映像信息,可以通过该信息查询指定进程的swap使用情况
如
1 | cat /proc/15812/smaps | grep Swap |