参考:http://c.biancheng.net/view/1065.html
ps可以一次性给出系统当前的进程状态,但是实时监控的话是不够的,要用top。
[root@localhost ~]# top -d 5 -s -u root
top: -d disallowed in "secure" mode
top的选项
- -d 秒数:指定top每隔几秒更新,默认是3秒
- -b 一次输出几个,一般与 -n 次数合用(指定top执行的次数),用于把top的输出重定向到文件中(这样会很完整)
- -p 进程id:只看某个进程的
- -s:在安全模式中运行,避免在交互模式中出现错误
- -u 用户名:只监听某个用户的进程
在top命令窗口中,可以用的按键有:
- ?或h:显示帮助。q退出
- M:按照内存的使用率排序。默认是按照cpu的使用率排序的
- P:按照cpu使用率排序
- N:按照pid递减排序
- T:按cpu累积运算时间排序,也就是TIME+
- r:按照pid给某个进程重设优先级(nice)
- c:显示命令的完整路径
- q:退出。ctrl+c也行
头部的解释:
- 当前时间、系统开机后运行的天数和时间、当前登录了几个用户
- load average:系统在之前1分钟、5分钟和15分钟的平均负载。一般认为这个数字不该超过服务器的cpu核数
查看cpu核数:
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "core id"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
对于进程的信息,解释如下:
- PR:优先级,越小越高
- NI:优先级,越小优先级越高
- VIRT:该进程使用的虚拟内存的大小,单位为kb
- RES:使用的物理内存大小,kb
- SHR:使用的共享内存的大小,kb
- S:进程状态
优先级问题
其中PR是由内核动态调整的,用户不能修改,但用户可以通过修改NI来影响PR值。
PR = PR(原始) + NI
- NI 范围是 -20~19。
- 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
- 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
- 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。
nice 命令可以给要启动的进程赋予 NI 值,但是不能修改已运行进程的 NI 值。
例如:
nice -n -5 service httpd start
renice是在进程运行时修改
renice NI值 pid
当然,在top窗口输入 r 即可。