Linux下的进程管理(1)(4)
4、htop
htop命令是top命令的升级版,无论是在功能上还是在界面显示上,都比top命令更胜一筹。
u: 交互式选择显示指定用户的进程
l: 显示光标所在进程所打开的文件列表
s: 显示光标所在进程执行的系统调用
a: 绑定进程到指定的CPU
#:快速定位光标至PID为#的进程上
下图是htop的界面。这个工具比较强大,用法功能比较多,在这里先做简单介绍。以后笔者会专门写htop的博客。
5、vmstat
wmstat 查看虚拟使用情况
- # 常用用法:
- # vmstat 显示信息会默认1秒刷新一次,一直显示
- # vmstart -n 2 显示信息会2秒刷新一次,一直显示
- # vmstat -n 1 4 显示信息会1秒刷新一次,刷新4次
- [root@server ~]# vmstat -n 1 1
- 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 0 614392 100468 144776 0 0 2 1 6 5 0 0 100 0 0
- # 我们解释一下每个字段的含义:
- # procs字段 关于进程的
- # r 指运行队列的进程数,如果过长,可能是cpu性能较低
- # b 阻塞队列的长度,通常是用于等待I/O的完成。如果太大,说明I/O性能较低
- # memory字段 关于内存使用的
- # swap 使用的交换内存大小
- # free 空余内存大小 它的值=总大小-buff-cache-used
- # buff 缓冲大小,目的是为了加速I/O的写操作(一般是磁盘)
- # cache 缓存大小,摸底是为了加速I/O的读操作(一般是磁盘)
- # swap字段 说明交换内存
- # si swapin 指的是数据进入交换内存的速率 单位:KB/s
- # so swapout 指的是数据出交换内存的速率 单位:KB/s
- # 如果这2个值比较大的时候,会出现抖动现象。建议增加内存
- # io字段 I/O的说明
- # bi:Block in 从块设备读入内存的速率 KB/s
- # bo: block out 保存到块设备的速率 KB/s
- # 这就是我们通常说的磁盘的读写性能,可以通过RAID提高。
- # system字段 关于系统的
- # in: interruppt 中断发生的速率
- # cs: 上下文切换的速率进程调度)
- # cpu字段 说明cpu的使用情况
- # us:user space:用于运行用户空间的程序所占的cpu百分比
- # sy:system space:用于运行内核空间的程序所占的cpu百分比
- # id:系统cpu空闲所占百分比
- # wa:用于等待I/O所占的cpu百分比,这是由于cpu和i/o速度相差太多所造成的
- # st:系统被“偷走”的cpu所占的百分比,一般指的是用于虚拟机运行所占的cpu的时间百分比
6、nice,renice
调整进程的优先级。
nice 在进程启动的时候设置优先级。
- # 常用参数:
- # -n NICE 例如:nice -n 3 httpd
- # 一般情况下,nice值是负值的设定一般有管理员来设定。普通用户只能设置nice为正值。
- # 如果不指定 -n 参数,默认的nice值是10
renice 重新设置已启动进程的优先级。
- # 常用选项是:
- # -n NICE 重新设定nice的值
- # -p PID 设定进程的PID
7、kill,killall
对于有Linux C编程经验的人来说,我们知道IPC通信方式之一就是通过信号量signal),那么对于kill和killall命令来说,它们与信号量有着很大的关系,或者说kill,killall命令通过信号量让我们可以手动的向进程传递信号来控制进程。
常见的信号量如下:
- [root@server ~]# kill -l
- 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
- 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
- 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
- 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
- 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
- 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
- 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
- 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
- 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
- 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
- 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
- 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
- 63) SIGRTMAX-1 64) SIGRTMAX
- # 我们常用到的信号是:
- # 1 SIGHUP 在不关闭进程的情况下,重读配置文件。ngnix在这方面做得相当的好,甚至可以实现在线升级。
- # 2 SIGINT 中断信号 相当于 ctrl + C
- # 9 SIGKILL 暴力杀死
- # 15 SIFTERM 优雅的关闭 默认是这种情况
- # kill用法如下:
- # kill [-SIGNAL] PID
- # 对于SIGNAL有三种表示:例如:1) -9 -15 -1 -2 2)-SIGKILL -SIGHUP -SIGTERM 3) -HUP -KILL -TERM -INT 等。
- #
- # killall是杀掉一类进程
- # 例如:killall httpd 等价于 kill `pidof httpd`
评论暂时关闭