本章节主要讲解 top命令的使用,查看进程的状态,以及进程的管理
一、 top 命令行选项
top 实时查看进程信息
-p 查看指定PID信息
top -d 刷新时间(以秒为单位)-p pid 查看指定PID信息
top -u 用户 只查看该用户开启的所有进程信息
top -d 3 -u root (每3秒刷新一下root用户的进程)
s 修改刷新时间,单位是秒,可以是0.0001s,建议不要设置很小,否则会过度消耗cpu
修改成每2秒刷新一下
q 或者 ctrl+c 退出 top
k 给进程发送信号 输入k后 默认会指定第一个pid 修改成自己想要的即可
向1572这个PID 发送信号9 代表强制关闭这个进程
字段 排序:
M 选中内存占用率字段并且从大到小排序
P 选中CPU占用率字段并且从大到小排序
N 选中PID字段并且从大到小排序
R 当前选择的字段从大到小或者从小到大 排序
> 移动到右边字段
< 移动到左边字段
当前按下了P选中的是PID 然后按下了R排序
按下M之后选中了%MEN内存占用率字段,并且保持着上一次的排序
pgrep -l -u root 查看root用户开启的进程
二、top 详细信息
top - 当前系统时间 up 系统到目前运行的时间,2个用户登录,load average:1分钟内负载,5分钟内,15分钟内
Tasks: 100个进程,1个正在运行,99个正在睡眠,2进程已暂停,0个僵尸进程
0.0%us【user space】— 用户空间占用CPU的百分比。
0.3%sy【sysctl】— 内核空间占用CPU的百分比。
0.0%ni【】— 改变过优先级的进程占用CPU的百分比
99.7%id【idolt】— 空闲CPU百分比
0.0%wa【wait】— IO等待占用CPU的百分比
0.0%hi【Hardware IRQ】— 硬件中断占用CPU的百分比
0.0%si【Software Interrupts】— 软件中断占用CPU的百分比
0.0%st【Steal Time】 虚拟CPU等待实际CPU时间的百分比。
KiB Mem(内存状态):
995MB(物理内存总量)
776MB(空闲内存容量)
115MB(已使用的物理内存)
104MB(缓存容量)
KiB Swap(swap交换分区):
1.5G(swap分区总量)
1.5G(正在空闲)
0(已使用的交换区总量)
750MB(缓冲的交换区总量)
PID | 进程代号 |
---|---|
USER | 运行进程的用户 |
PR | 数值越低获得CPU的时间越多(不可修改) |
NI | nice值 可以提高进程优先级 |
VIRT | 占用的虚拟内存 |
RES | 进程使用的内存大小 |
SHR | 共享内存大小 |
S | 进程状态 (详细可见上一篇博客) |
%CPU | 进程占用CPU的百分比 |
%MEM | 进程占用内存的百分比 |
TIME+ | 进程启动后使用CPU的时间 |
COMMAND | 进程运行使用的命令 |
三、管理进程
-
优先级设置:
nice -n 5 ls 启动ls这个命令 优先级设置为 5 数值越低代表优先级越高,数值上限是 -20 - 19 root用户可修改nice值-20 ~ 19 ,普通用户只能修改nice值0~19 一般情况下,子进程继承父进程的nice值,由于init进程的nice值为0所有大部分进程 的nice值都为 0。 优先级越高,所获得cpu时间越多
ps -l 命令 有几个重要的信息:
UID:代表执行者的身份
PID:代表这个进程的代号
PPID:代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI:代表这个进程可被执行的优先级,其值越小越早被执行
NI:代表这个进程的nice值
也可以对已运行的进程设置新的的优先级:renice -20 PID
kill -l 查看可发送的信号
-
给进程发送信号
kill -1 挂起信号,可以让进程重新加载配置文件
实例:
1、启动 vsftpd服务 [root@localhost ~]# systemctl start vsftpd [root@localhost ~]# ls /var/ftp/ pub 2、打开浏览器,输入ftp://192.168.12.199/ (输入本机的ip) 看到的是/var/ftp下的内容
3、修改vsfpt的配置文件,将匿名用户共享目录改为/test文件夹 [root@localhost ~]# echo 'anon_root=/test' >> /etc/vsftpd/vsftpd.conf 将 anon_root=/test 追加到 /etc/vsfpd/vsftpd.conf 文件的末尾 这时我们发现,网页的文件夹并没有改变,是因为我们没有重新加载这个配置文件,但是在服务器 的环境中是不能重启服务的,所以需要在不重启的情况下加载这个文件
第一次查询可以能会出现很多vsftpd的进程,所以需要 kiil -9 第一vsftpd的PID 就行了 4、kill -1 1614 这期间vsfpd的PID是始终不变的,因为从未关闭过进程 [root@localhost ~]# kill -1 1614 [root@localhost ~]# ps aux | grep [v]sftp root 1614 0.0 0.0 53284 776 ? Ss 15:41 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 5、打开浏览器,输入ftp://192.168.12.199/,看到的是/test下的内容
kill -9 关闭进程信号(前面提到过多次)
kill -stop(19) 暂停进程
kill -cont(18) 恢复进程