Linux-01-查看系统资源(top-vmstat-free-df-iostat)

1. 简述

在日常使用中,常见的几种查看资源命令,如整机top,cpu的vmstat,内存free,硬盘df,磁盘io的iostat,以及网络io的ifstat 来观察系统的一些资源信息以及状况

1.1 top

格式: top [ -d number ] 或者 top [ -bnp ]

参数解释:

  • -d : number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。

当然你也可以自定义比如,top -d 1 代表一秒刷新一次页面
在这里插入图片描述

  • -b:以批次的方式执行top。
  • -n:与-b配合使用,表示需要进行几次top命令的输出结果。
  • -p:指定特定的pid进程号进行观察。

在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):

  • ?:显示在top当中可以输入的命令
  • P:以CPU的使用资源排序显示
  • M:以内存的使用资源排序显示
  • N:以pid排序显示
  • T:由进程使用的时间累计排序显示
  • k:给某一个pid一个信号。可以用来杀死进程
  • r:给某个pid重新定制一个nice值(即优先级)
  • q:退出top(用ctrl+c也可以退出top)。

输出结果详细解释:
在这里插入图片描述
分析前面5行信息:

top - 10:49:13 up 1:32, 2 users, load average: 0.00, 0.00, 0.00

内容含义
10:49:13表示当前时间
up 1:32表示系统运行时间 格式为 时:分
2 users当前登录用户数
load average: 0.00, 0.00, 0.00系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

Tasks: 155 total, 1 running, 154 sleeping, 0 stopped, 0 zombie

内容含义
155 total进程总数
1 running正在运行的进程数
154 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

内容含义
0.0%us用户空间占用CPU百分比
0.0%sy内核空间占用CPU百分比
0.0%ni用户进程空间内改变过优先级的进程占用CPU百分比
100.0%id空闲CPU百分比
0.0%wa等待输入输出的CPU时间百分比
0.0%hi硬中断(Hardware IRQ)占用CPU的百分比
0.0%si软中断(Software Interrupts)占用CPU的百分比
0.0%st实时占用Cpu的百分比
Mem: 8157844k total, 911984k used, 7245860k free, 54612k buffers
内容含义
8157844k total物理内存总量
911984k used使用的物理内存总量
7245860k free空闲内存总量
54612k buffers用作内核缓存的内存量

Swap: 2097148k total, 0k used, 2097148k free, 191308k cached

内容含义
2097148k total交换区内存总量
0k used使用的交换区总量
2097148k free空闲交换区总量
191308k cached缓冲的交换区总量

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

内容含义
PID进程id
USER进程所有者的用户名
PR优先级
NInice值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行

其他:
默认进入top时,各进程是按照CPU的占用量来排序的。

1、在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况:
在这里插入图片描述

1.2 vmstat

vmstat命令是最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

一般vmstat工具的使用是通过两个数字参数来完成的

  • 第一个参数是采样的时间间隔数,单位是秒;
  • 第二个参数是采样的次数

在这里插入图片描述
3 表示每个两秒采集一次服务器状态,3表示只采集3次;如果不想三次就结束,那就不要写,直接就 vmstat 3 就是代表3秒一次,一直执行下去;

参数详细解释:

  • Procs(进程)
    r : 等待执行的任务数,当这个值超过了cpu个数,就会达到Cpu瓶颈;
    b : 等待IO的进程数量
    swpd :正在使用虚拟的内存大小,单位k
  • Memory(内存)
    free:空闲内存大小
    buff:已用的buff大小,对块设备的读写进行缓冲
    cache:已用的cache大小,文件系统的cache
  • Swap(交换区)
    si:每秒从交换区写入内存的大小(单位:kb/s)
    so:每秒从内存写到交换区的大小
  • IO
    bi:每秒读取的块数(读磁盘)
    bo:每秒写入的块数(写磁盘)
  • system
    in: 每秒中断数,包括时钟中断;
    cs: 每秒上下文切换数
    这两个值越大,会看到由内核消耗的cpu时间sy会越多;
    秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目;
  • cpu
    us : 用户进程执行消耗cpu时间(user time);
    sy: 系统进程消耗cpu时间(system time);
    id: 空闲时间(包括IO等待时间);
    wa: 等待IO时间;
    st: 实时

1.3 free

显示当前系统内存和交换空间的使用情况;

常用参数;

  • free 默认等于free -k

  • free -m 以m为单位显示

  • free -g 以g为单位显示
    在这里插入图片描述
    参数详细解释:

  • Mem: 物理内存信息统计
    total: 物理内存总量(total = used + free)
    used:已经分配给缓存(buffers 与cache)的内存大小
    free: 未被分配的内存大小
    shared:共享内存,在linux里面有很多共享内存,比如一个libc库,很多程序调用,但实际只存了一份。
    有些版本的操作系统中已经废弃了shared,此时,shared总是为0。
    buffers:系统已分配但未被使用的块缓存(Buffer Cache)大小
    cached:系统已分配但未被使用的页缓存(Page Cache)大小

  • -/+ buffers/cache: 用户进程内存信息统计
    used:已使用缓存的大小。等于Mem中used - buffers - cached的值。
    free:剩余可用缓存的大小(包括:已分配未使用的缓存和未分配的缓存)。等于Mem中free + buffers + cached的值。

  • Swap: 交换空间的使用情况。
    total:交换空间的总量。
    used:交换空间已使用的大小。

1.4 df

df 可以显示目前系统的最大可用空间及使用情况;

常用参数为:

  • df 默认等于 df -k 以字节的形式显示
    在这里插入图片描述
  • df -m 以MB的形式显示
    在这里插入图片描述
  • df -h 以GB的形式显示,同时也是以人类容易看得懂的语言显示
    在这里插入图片描述

1.5 iostat

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

常用命令:

  • iostat
    在这里插入图片描述

  • iostat -d -k 2 #查看TPS和吞吐量信息
    -d: 显示设备(磁盘)使用状态
    -k: 以k为单位,也可以改成m,表示以MB为单位
    2: 表示,数据显示每隔2秒刷新一次
    在这里插入图片描述
    输出结果解释:

  • tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输"意思是"一次I/O请求”。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。

  • kB_read/s:每秒从设备(drive expressed)读取的数据量;

  • kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;

  • kB_read:读取的总数据量;

  • kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alan0517

感谢您的鼓励与支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值