top命令显示参数详解

top命令主要用来查看系统状况,CPU、内存、进程资源占用情况。
使用格式如下:

top 
  -d 10  //表示所打开的页面10秒刷新一次,不指定默认为5秒
  -b     //以批处理模式显示程序信息
  -n 2   //设置信息更新次数,表示更新2次后终止更新显示
  -p 1018   //显示进程号为1018的进程信息,CPU、内存占用率等

top输出显示如下:

[root@localhost ~]# top
top - 10:31:12 up 13 min,  1 user,  load average: 0.06, 0.04, 0.05
Tasks: 192 total,   1 running, 191 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
MiB Mem :    780.3 total,    324.9 free,    244.2 used,    211.2 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.    408.1 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                 
    775 root      20   0       0      0      0 I   0.3   0.0   0:01.96 kworker/0:5-events                      
   1585 root      20   0  153356   5448   4196 S   0.3   0.7   0:00.26 sshd                                    
   1630 root      20   0   65380   4376   3736 R   0.3   0.5   0:00.55 top                                     
      1 root      20   0  179144  13392   8572 S   0.0   1.7   0:02.33 systemd                                 
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd                                
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                  
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                              
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd                    
      7 root      20   0       0      0      0 I   0.0   0.0   0:00.03 kworker/0:1-events_power_efficient      
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                            
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.07 ksoftirqd/0                             
     11 root      20   0       0      0      0 I   0.0   0.0   0:00.10 rcu_sched                               
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0                             
     13 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 watchdog/0                              
     14 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                 
     16 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmpfs                               
     17 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                   
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kauditd                  

1. 前5行参数解析

第一行: 任务队列信息,同uptime
top - 10:31:12 显示当前时间
up 18 min 当前系统运行了多长时间,单位:分
1 user 当前登录此系统的用户数量
load average: 0.08, 0.02, 0.02 系统的负载情况,任务队列的平均长度,三个数值分别为1分钟以内,5分钟以内,15分钟以内系统负载的平均值。
此项的数值依据/proc/loadavg/proc是一个虚拟的文件系统,不占磁盘空间,此目录可以查看linux内核的一些运行数据。
/proc/cpuinfo可以查看相关CPU信息。

cat /proc/cpuinfo | grep "physical id" | uniq | wc -l   \\查看物理CPU个数
cat /proc/cpuinfo | grep "cpu cores" | uniq     \\查看物理CPU有几核
cat /proc/cpuinfo | grep "processor" | wc -l    \\查看逻辑CPU个数。一般情况下,逻辑cpu=物理CPU个数×每颗核数

/proc/meminfo可以获取内存信息。
/proc/loadavg获取信息如下:

[root@localhost ~]# cat /proc/loadavg 
0.00 0.02 0.00 1/217 1715
前三个数值表示1、5、15分钟内CPU负载,1/217代表当前系统共有217个进程(包括线程在内),有1个进程正在运行。 1715表示最近一次运行过的进程PID

第二行: 进程信息
Tasks: 197 total 进程总数
1 running 正在运行的进程
197 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程

第三行: CPU信息

内容解析
%Cpu(s): 0.0 us用户空间占用CPU百分比
0.3 sy内核空间占用CPU百分比
0.0 ni用户进程空间内改变过优先级的进程占用CPU百分比
99.3 id空闲CPU所占百分比
0.0 wa进程等待IO所占用CPU百分比,IO繁忙,这个值会比较高
0.0 hi进程硬件中断所占百分比
0.3 si进程软中断所占百分比
0.0 st虚拟机所占百分比

第四行: 物理内存

内容解析
MiB Mem : 780.3 total物理内存,单位kb
324.9 free剩余内存,单位kb
244.2 used已使用物理内存,单位kb
211.2 buff/cache用于内核缓存的内存,单位kb

第五行: swap内存

内容解析
MiB Swap: 2048.0 totalswap内存(虚拟内存),单位kb
2048.0 free剩余内存,单位kb
0.0 used已使用物理内存,单位kb
408.1 avail Mem可用于进程下一次分配的物理内存数量,单位kb

2.进程信息列表区

序号  列名    含义	是否默认显示
a    PID     //进程id	默认显示
b    PPID    //父进程id	默认不显示
c    RUSER   //Real user name	默认不显示
d    UID     //进程所有者的用户id	默认不显示
e    USER    //进程所有者的用户名	默认显示
f    GROUP   //进程所有者的组名	默认不显示
g    TTY     //启动进程的终端名。不是从终端启动的进程则显示为 ?	默认不显示
h    PR      //内核实际的优先级,一般等于NI+20。值越低优先级越高	默认显示
i    NI      //nice值(用户可以设置的)。负值表示高优先级,正值表示低优先级。也就是值越小优先级越高	默认显示
j    P       //最后使用的CPU,仅在多CPU环境下有意义	默认不显示
k    %CPU    //上次更新到现在的CPU时间占用百分比	默认显示
l    TIME    //进程使用的CPU时间总计,单位秒	默认不显示
m    TIME+   //进程使用的CPU时间总计,单位1/100秒	默认显示
n    %MEM    //进程使用的物理内存百分比	默认显示
o    VIRT    //进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES	默认显示
p    SWAP    //进程使用的虚拟内存中,被换出的大小,单位kb。	默认不显示
q    RES     //进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA	默认显示
r    CODE    //可执行代码占用的物理内存大小,单位kb	默认不显示
s    DATA    //可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb	默认不显示
t    SHR     //共享内存大小,单位kb	默认显示
u    nFLT    //页面错误次数	默认不显示
v    nDRT    //最后一次写入到现在,被修改过的页面数。	默认不显示
w    S       //进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)	默认不显示
x    COMMAND //命令名/命令行	默认显示
y    WCHAN   //若该进程在睡眠,则显示睡眠中的系统函数名	默认不显示
z    Flags   //任务标志,参考 sched.h	默认不显示

3.特殊操作

在top显示页面,可以按数字1查看每个CPU的使用情况。
按f可以编辑默认视图中显示字段

Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

* PID     = Process Id             TTY     = Controlling Tty        vMj     = Major Faults delta  
* USER    = Effective User Name    TPGID   = Tty Process Grp Id     vMn     = Minor Faults delta  
* PR      = Priority               SID     = Session Id             USED    = Res+Swap Size (KiB) 
* NI      = Nice Value             nTH     = Number of Threads      nsIPC   = IPC namespace Inode 
* VIRT    = Virtual Image (KiB)    P       = Last Used Cpu (SMP)    nsMNT   = MNT namespace Inode 
* RES     = Resident Size (KiB)    TIME    = CPU Time               nsNET   = NET namespace Inode 
* SHR     = Shared Memory (KiB)    SWAP    = Swapped Size (KiB)     nsPID   = PID namespace Inode 
* S       = Process Status         CODE    = Code Size (KiB)        nsUSER  = USER namespace Inode
* %CPU    = CPU Usage              DATA    = Data+Stack (KiB)       nsUTS   = UTS namespace Inode 
* %MEM    = Memory Usage (RES)     nMaj    = Major Page Faults      LXC     = LXC container name  
* TIME+   = CPU Time, hundredths   nMin    = Minor Page Faults      RSan    = RES Anonymous (KiB) 
* COMMAND = Command Name/Line      nDRT    = Dirty Pages Count      RSfd    = RES File-based (KiB)
  PPID    = Parent Process pid     WCHAN   = Sleeping in Function   RSlk    = RES Locked (KiB)    
  UID     = Effective User Id      Flags   = Task Flags <sched.h>   RSsh    = RES Shared (KiB)    
  RUID    = Real User Id           CGROUPS = Control Groups         CGNAME  = Control Group name  
  RUSER   = Real User Name         SUPGIDS = Supp Groups IDs        NU      = Last Used NUMA node 
  SUID    = Saved User Id          SUPGRPS = Supp Groups Names   
  SUSER   = Saved User Name        TGID    = Thread Group Id     
  GID     = Group Id               OOMa    = OOMEM Adjustment    
  GROUP   = Group Name             OOMs    = OOMEM Score current 
  PGRP    = Process Group Id       ENVIRON = Environment vars

前面带*号表示默认视图展示该列,用上下键进行移动,空格来确认是否展示该列,按q退出。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
豆瓣 Top250 电影数据可以通过豆瓣提供的 API 来获取,但是每次请求最多只能获取 20 条数据。因此,我们需要多次请求来获取完整的 Top250 电影数据。以下是获取数据的步骤: 1. 在豆瓣开发者平台上注册账号并创建应用,获取 API Key。 2. 构造请求 URL,请求方式为 GET,URL 格式如下: ``` https://api.douban.com/v2/movie/top250?start=0&count=20&apikey=your_api_key ``` 其中,start 参数代表数据的起始位置,count 参数代表请求的数据数量,apikey 参数为申请的 API Key。 3. 发送 GET 请求,获取豆瓣 Top250 电影数据。 4. 对数据进行清洗和处理,只保留需要的数据字段,如电影名称、导演、主演、评分等。 5. 将清洗后的数据存储到数据库或者文件中,方便后续的使用和分析。 以下是 Python 代码示例: ```python import requests import json # 请求 URL url = 'https://api.douban.com/v2/movie/top250' # 请求参数 params = { 'start': 0, 'count': 20, 'apikey': 'your_api_key' } # 发送 GET 请求 response = requests.get(url, params=params) # 解析 JSON 数据 data = json.loads(response.text) # 提取电影信息 movies = [] for movie in data['subjects']: title = movie['title'] directors = ','.join([d['name'] for d in movie['directors']]) casts = ','.join([c['name'] for c in movie['casts']]) rating = movie['rating']['average'] movies.append({'title': title, 'directors': directors, 'casts': casts, 'rating': rating}) # 存储数据 with open('movies.json', 'w', encoding='utf-8') as f: json.dump(movies, f, ensure_ascii=False) ``` 这段代码可以获取豆瓣 Top250 电影的前 20 条数据,并将数据存储到名为 movies.json 的 JSON 文件中。需要注意的是,我们需要多次请求才能获取完整的 Top250 电影数据。可以通过修改 start 和 count 参数来获取不同位置和数量的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值