linux-top命令备忘

参考: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也行

linux-top命令备忘
linux-top命令备忘
头部的解释:

  • 当前时间、系统开机后运行的天数和时间、当前登录了几个用户
  • load average:系统在之前1分钟、5分钟和15分钟的平均负载。一般认为这个数字不该超过服务器的cpu核数

查看cpu核数:
linux-top命令备忘

# 总核数 = 物理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

linux-top命令备忘
linux-top命令备忘
对于进程的信息,解释如下:

  • 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 即可。

上一篇:985研究生入职电网6个月,15分钟的字节跳动视频面试


下一篇:Coming Back