阅读模式:

linux top命令详解

查看:8245  回复:0  类型:  来源:博客园-bangerlee  标签 linux

    

使用top命令,可以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等,top可以以一定频率更新这些统计信息。下面我们来学习top命令的具体使用方法。

 

默认输出

top命令的默认输出如下:

[root@localhost ~]# top
top - 10:19:44 up 46 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  74 total,   2 running,  72 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.7 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1016396 total,    66832 free,   448284 used,   501280 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   419772 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 2111 root      20   0  143060  13320   1204 S  0.3  1.3   0:04.10 redis-server
 2756 root      20   0  157572   2132   1536 R  0.3  0.2   0:00.05 top
    1 root      20   0   43172   3560   2420 S  0.0  0.4   0:00.71 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.04 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kworker/u2:0
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 R  0.0  0.0   0:00.69 rcu_sched
   10 root      rt   0       0      0      0 S  0.0  0.0   0:00.01 watchdog/0
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md
   25 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kswapd0
   26 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
   28 root      20   0       0      0      0 S  0.0  0.0   0:00.00 fsnotify_mark
[root@localhost ~]#



以上输出上下分成两部分,上半部分显示了整体系统负载情况,各行含义如下:

  • top一行:从左到右依次为当前系统时间,系统运行的时间,系统在之前1min、5min和15min内cpu的平均负载值

  • Tasks一行:该行给出进程整体的统计信息,包括统计周期内进程总数、运行状态进程数、休眠状态进程数、停止状态进程数和僵死状态进程数

  • Cpu(s)一行:cpu整体统计信息,包括用户态下进程、系统态下进程占用cpu时间比,nice值大于0的进程在用户态下占用cpu时间比,cpu处于idle状态、wait状态的时间比,以及处理硬中断、软中断的时间比

  • Mem一行:该行提供了内存统计信息,包括物理内存总量、已用内存、空闲内存以及用作缓冲区的内存量

  • Swap一行:虚存统计信息,包括交换空间总量、已用交换区大小、空闲交换区大小以及用作缓存的交换空间大小

 

下半部分显示了各个进程的运行情况,各列含义如下:

  • PID: 进程pid

  • USER: 拉起进程的用户

  • PR: 该列值加100为进程优先级,若优先级小于100,则该进程为实时(real-time)进程,否则为普通(normal)进程,实时进程的优先级更高,更容易获得cpu调度,以上输出结果中,java进程优先级为120,是普通进程,had进程优先级为2,为实时进程,migration 进程的优先级RT对应于0,为最高优先级

  • NI: 进程的nice优先级值,该列中,实时进程的nice值为0,普通进程的nice值范围为-20~19

  • VIRT: 进程所占虚拟内存大小(默认单位kB)

  • RES: 进程所占物理内存大小(默认单位kB)

  • SHR: 进程所占共享内存大小(默认单位kB)

  • S: 进程的运行状态

  • %CPU: 采样周期内进程所占cpu百分比

  • %MEM: 采样周期内进程所占内存百分比

  • TIME+: 进程使用的cpu时间总计

  • COMMAND: 拉起进程的命令

 

top命令默认输出提供了很多信息,为获取我们关注的信息,可以使用top命令选项,也可以在top运行中使用快捷键过滤输出信息、根据cpu使用率等值对进程进行排序,下面给出具体使用例子。

 

对输出结果进行排序

top输出的下半部分有很多进程信息列,我们可以根据这些列对进程输出进行排序,默认情况下根据cpu使用率对进程排序。在top命令执行时,按”O”,可以看到排序项以及相应的按键:

Current Sort Field:  K  for window 1:Def
Select sort field via field letter, type any other key to return

  a: PID        = Process Id
  b: PPID       = Parent Process Pid
  c: RUSER      = Real user name
  d: UID        = User Id


各项默认以从大到小排序,top运行中,按”R”可反向显示输出结果。


显示特定用户相关进程

在top运行时,按”u”快捷键,可以过滤出特定用户拉起的进程:

 Which user (blank for all) www
 2011 www       20   0  244684  10960   5220 S  0.0  1.1   0:01.43 php-fpm
 2012 www       20   0  242484  11136   5444 S  0.0  1.1   0:01.31 php-fpm
 2109 www       20   0   21664   2560   1052 S  0.0  0.3   0:00.51 nginx

执行top命令时,使用”top -u www”可以起到相同效果。

 

显示特定进程

执行top时,使用”-p”选项可以指定要显示的进程:

[root@localhost ~]# top -p 2011,2012,1184,2111,2109
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1184 mysql     20   0 1128316 290380   7916 S  0.3 28.6   0:02.91 mysqld
 2111 root      20   0  143060  13044   1204 S  0.3  1.3   0:05.28 redis-server
 2011 www       20   0  244684  10960   5220 S  0.0  1.1   0:01.55 php-fpm
 2012 www       20   0  242484  11136   5444 S  0.0  1.1   0:01.43 php-fpm
 2109 www       20   0   21664   2560   1052 S  0.0  0.3   0:00.56 nginx


显示所有cpu核使用情况

默认情况下,top上半部分资源负载信息中,显示的是cpu整体的使用情况:

[root@localhost ~]# top
top - 10:19:44 up 46 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  74 total,   2 running,  72 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.7 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

按数字”1”快捷键,可以开启/关闭显示各个cpu核的信息:

%Cpu0  :  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0 us,  0 sy,  0.0 ni, 100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

 

更改top命令显示频率

默认情况下,top命令以3秒的频率更新输出结果,top命令执行时,按”d”可以更新top更新频率:

Change delay from 1.0 to 2

执行top命令时,使用”-d”选项也可以指定top输出跟新频率。另外,按空格键,可以手动更新输出。

 

显示命令的全路径和参数

top运行时,按”c”快捷键,将显示命令的全路径以及命令参数:

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 2011 www       20   0  244684  10776   5036 S  0.2  1.1   0:01.60 php-fpm: pool www
 2111 root      20   0  143060  13076   1204 S  0.2 1.3 0:05.87 /usr/local/redis/redis-server


指定显示的进程数目

top默认依据窗口大小显示进程数,有时我们对进程排序后,只想关注排在前面的几个进程,使用”-n”快捷键可以达到目的:

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1271 root      20   0 2055276  68720  10860 S  0.7  6.8   0:28.86 java
 2073 root      20   0  124060  12252   8328 R  0.2  1.2   0:07.86 AliYunDun
 2111 root      20   0  143060  13052   1204 R  0.2  1.3   0:06.46 redis-server
    9 root      20   0       0      0      0 R  0.1  0.0   0:01.02 rcu_sched
 1184 mysql     20   0 1128316 292428   7916 S  0.1 28.8   0:03.39 mysqld

 

在top中向进程发送信号

top运行时,按”k”快捷键,可向指定进程发送信号,默认信号为SIGTERM,该信号可中止进程:

PID to kill: 15561
Kill PID 15561 with signal [15]:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
15561 sshusr    30  10  3700  356  276 R  8.2  0.0  95:33.45 a.out
   18 root      20   0     0    0    0 R  2.8  0.0  41:48.24 ksoftirqd/7


更改进程的nice优先级值

top运行时,按”r”快捷键,可以修改指定进程的nice优先级:

PID to renice: 17898
Renice PID 17898 to value: 10
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
17898 sshusr    20   0  3700  356  276 R  8.3  0.0   0:03.96 a.out
    4 root      20   0     0    0    0 R  2.0  0.0  25:51.30 ksoftirqd/0

保存top配置

为看到我们关注的进程、信息,用了很多快捷键,若下次运行top时,想要看到之前关心的内容,又要敲一遍快捷键,这相当不方便。使用”W”快捷键,可以把当前显示配置保存到~/.toprc文件中。 

例如以1秒的频率查看前10个占用内存最多的进程,我们需要敲下列快捷键:

d: Change delay from 3.0 to: 1
n: Maximum tasks = 0, change to (0 is unlimited): 10
M: 快捷键”M”指示进程根据内存使用率从大到小排序

之后按下”W”可以对配置进行保存:

W: Wrote configuration to '/root/.toprc'

退出再执行top命令,可以看到top以1秒的频率查看前10个占用内存最多的进程,与我们之前保存的配置相符。

来源:http://www.cnblogs.com/bangerlee/articles/2568776.html

分享到:
0 0

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

发布评论:


登录:
  表情:
评论话题
推荐阅读:
centos 7 设置 nginx-1.11.10 开机启动   阅读:7286php翻转字符串   阅读:2841mysql的四种索引类型   阅读:19405HTTP 1.1 协议详解   阅读:8662nginx编译安装后对nginx进行平滑升级   阅读:5489程序员找工作三要素(必看)   阅读:5095crontab+shell脚本实现定时备份mysql数据库   阅读:6830ajax+php 实现一个简单的在线聊天室功能(附带源码)   阅读:8119什么是天使轮?什么是A轮融资?B轮融资?   阅读:3993centos 7 安装 php-7.1.3   阅读:17884人性漫画:打工与创业的残酷区别   阅读:4182最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:12208linux教程,鸟哥私房菜(pdf全集)   阅读:8205php打印三角形   阅读:7509php打印九九加法表   阅读:8734最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:9857centos 7 设置 nginx-1.11.10 开机启动   阅读:7286最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:9857centos 7 安装 samba 服务   阅读:5844centos 7.2 添加php7 的 php-fpm 开机启动   阅读:21852mysql共享锁和排他锁详解   阅读:6441栈和堆的区别   阅读:4445人性漫画:打工与创业的残酷区别   阅读:4182什么是天使轮?什么是A轮融资?B轮融资?   阅读:3993人性漫画:打工与创业的残酷区别   阅读:4182phpexcel 超简单从excel表格一键导入数据到数据库教程   阅读:11260十张GIF让你弄懂递归等概念   阅读:5395栈和堆的区别   阅读:4445mysql 为什么添加索引可以提高访问速度   阅读:5394javascript对cookie操作详细代码函数   阅读:4796知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:5478关于PHP程序员技术职业生涯规划   阅读:2169知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:5478TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:2517linux php7编译安装mongodb扩展   阅读:7720php 统计网页打开耗时和脚本运行内存   阅读:6128面试都会问你为什么你从上一家公司离职的真实意思   阅读:9989session与cookie的区别   阅读:3698php 统计网页打开耗时和脚本运行内存   阅读:6128mysql数据库性能的基本优化   阅读:4089栈和堆的区别   阅读:4445linux命令中执行php脚本   阅读:6760mysql中文分词全文搜索索引讯搜的安装   阅读:5910用php从1乘到100的值   阅读:5674用php从1加到100的值   阅读:7548php冒泡排序法   阅读:12829centos7中颁发CA证书并开启web https   阅读:5770html5 离线缓存的使用   阅读:3845“米粉节”背后的故事——小米网抢购系统开发实践   阅读:3628mysql共享锁和排他锁详解   阅读:6441