4、htop

htop命令是top命令的升级版,无论是在功能上还是在界面显示上,都比top命令更胜一筹。

u: 交互式选择显示指定用户的进程

l: 显示光标所在进程所打开的文件列表

s: 显示光标所在进程执行的系统调用

a: 绑定进程到指定的CPU

#:快速定位光标至PID为#的进程上

下图是htop的界面。这个工具比较强大,用法功能比较多,在这里先做简单介绍。以后笔者会专门写htop的博客。

wKiom1PL1jHCpKO4AATAgaiStJA686.jpg

5、vmstat

wmstat 查看虚拟使用情况

  1. # 常用用法:  
  2. # vmstat 显示信息会默认1秒刷新一次,一直显示  
  3. # vmstart -n 2 显示信息会2秒刷新一次,一直显示  
  4. # vmstat -n 1 4 显示信息会1秒刷新一次,刷新4次  
  5. [root@server ~]# vmstat -n 1 1  
  6. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----  
  7. r b swpd free buff cache si so bi bo in cs us sy id wa st  
  8. 0 0 0 614392 100468 144776 0 0 2 1 6 5 0 0 100 0 0  
  9. # 我们解释一下每个字段的含义:  
  10. # procs字段 关于进程的  
  11. # r 指运行队列的进程数,如果过长,可能是cpu性能较低  
  12. # b 阻塞队列的长度,通常是用于等待I/O的完成。如果太大,说明I/O性能较低  
  13. # memory字段 关于内存使用的  
  14. # swap 使用的交换内存大小  
  15. # free 空余内存大小 它的值=总大小-buff-cache-used  
  16. # buff 缓冲大小,目的是为了加速I/O的写操作(一般是磁盘)  
  17. # cache 缓存大小,摸底是为了加速I/O的读操作(一般是磁盘)  
  18. # swap字段 说明交换内存  
  19. # si swapin 指的是数据进入交换内存的速率 单位:KB/s  
  20. # so swapout 指的是数据出交换内存的速率 单位:KB/s  
  21. # 如果这2个值比较大的时候,会出现抖动现象。建议增加内存  
  22. # io字段 I/O的说明  
  23. # bi:Block in 从块设备读入内存的速率 KB/s  
  24. # bo: block out 保存到块设备的速率 KB/s  
  25. # 这就是我们通常说的磁盘的读写性能,可以通过RAID提高。  
  26. # system字段 关于系统的  
  27. # in: interruppt 中断发生的速率  
  28. # cs: 上下文切换的速率进程调度)  
  29. # cpu字段 说明cpu的使用情况  
  30. # us:user space:用于运行用户空间的程序所占的cpu百分比  
  31. # sy:system space:用于运行内核空间的程序所占的cpu百分比   
  32. # id:系统cpu空闲所占百分比  
  33. # wa:用于等待I/O所占的cpu百分比,这是由于cpu和i/o速度相差太多所造成的  
  34. # st:系统被“偷走”的cpu所占的百分比,一般指的是用于虚拟机运行所占的cpu的时间百分比 

6、nice,renice

调整进程的优先级。 

nice 在进程启动的时候设置优先级。

  1. # 常用参数:  
  2. # -n NICE 例如:nice -n 3 httpd  
  3. # 一般情况下,nice值是负值的设定一般有管理员来设定。普通用户只能设置nice为正值。  
  4. # 如果不指定 -n 参数,默认的nice值是10 

renice 重新设置已启动进程的优先级。

  1. # 常用选项是:  
  2. # -n NICE 重新设定nice的值   
  3. # -p PID  设定进程的PID 

7、kill,killall

对于有Linux C编程经验的人来说,我们知道IPC通信方式之一就是通过信号量signal),那么对于kill和killall命令来说,它们与信号量有着很大的关系,或者说kill,killall命令通过信号量让我们可以手动的向进程传递信号来控制进程。

常见的信号量如下:

  1. [root@server ~]# kill -l  
  2. 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP  
  3. 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1  
  4. 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM  
  5. 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP  
  6. 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ  
  7. 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR  
  8. 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3  
  9. 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8  
  10. 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13  
  11. 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12  
  12. 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7  
  13. 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2  
  14. 63) SIGRTMAX-1 64) SIGRTMAX   
  15. # 我们常用到的信号是:  
  16. # 1 SIGHUP 在不关闭进程的情况下,重读配置文件。ngnix在这方面做得相当的好,甚至可以实现在线升级。  
  17. # 2 SIGINT 中断信号 相当于 ctrl + C   
  18. # 9 SIGKILL 暴力杀死  
  19. # 15 SIFTERM 优雅的关闭 默认是这种情况  
  20. # kill用法如下:  
  21. # kill [-SIGNAL] PID  
  22. # 对于SIGNAL有三种表示:例如:1) -9 -15 -1 -2 2)-SIGKILL -SIGHUP -SIGTERM 3) -HUP -KILL -TERM -INT 等。  
  23. #   
  24. # killall是杀掉一类进程  
  25. # 例如:killall httpd 等价于 kill `pidof httpd` 


相关内容