当前位置: 澳门新濠3559 > 服务器运维 > 正文

10.5.2 统计内存使用情况,如何使 free 命令显示每

时间:2019-11-08 03:17来源:服务器运维
6 个例子让初大方明白 free 命令 | Linux 中黄炎子孙民共和国,freelinux 在 Linux系统上,一时你或然想从命令行飞速地精晓系统的已使用和未接受的内部存款和储蓄器空间。若是你是二个

6 个例子让初大方明白 free 命令 | Linux 中黄炎子孙民共和国,freelinux

在 Linux 系统上,一时你或然想从命令行飞速地精晓系统的已使用和未接受的内部存款和储蓄器空间。若是你是二个Linux 新手,有个好新闻:有一条系统内置的吩咐可以来得那些音讯:free。-- Himanshu Arora
本文导航◈ Linux free 命令07%◈ Q1. 怎么用 free 命令查看已选拔和未利用的内存?14%◈ Q2. 如何改动展现的单位吗?54%◈ Q3. 怎么显得可读的结果吧?59%◈ Q4. 怎么让 free 命令以自然的日子间距持续运作?52%◈ Q5. 怎么使 free 基于 1000 总结内存,并不是 1024?73%◈ Q6. 怎么样使 free 命令突显每一列的总的数量?81%◈ 总计89%编写翻译自 |  
 作者 | Himanshu Arora
 译者 | jessie-pang

在 Linux 系统上,不常你也许想从命令行飞快地问询系统的已接纳和未接收的内部存款和储蓄器空间。假若您是八个Linux 新手,有个好音讯:有一条系统内置的指令能够展现这一个音信:free

在本文中,大家会讲到 free 命令的主导用法以至它所提供的局部十分重要的职能。文中涉及的具有命令和用法都是在 Ubuntu 16.04LTS 上测验过的。

Linux free 命令

让大家看一下 free 命令的语法:

  1. free [options]

free 命令的 man 手册如是说:

free 命令呈现了系统的可用和已用的大意内部存储器及沟通内部存款和储蓄器的总数,甚至基本用到的缓存空间。这个音信是从 /proc/meminfo 中获得的。

接下去大家用问答的措施掌握一下 free 命令是怎么专门的学业的。

Q1. 怎么用 free 命令查看已采取和未利用的内部存款和储蓄器?

那十分轻巧,您只需不加任何参数地运作 free 那条命令就足以了:

  1. free

这是 free 命令在自家的系统上的出口:

view used and available memory using free command

这么些列是哪些看头吧?

◈ total - 安装的内部存款和储蓄器的总数(等同于 /proc/meminfo 中的 MemTotal 和 SwapTotal)◈ used - 已采取的内部存款和储蓄器(计算公式为:used10.5.2 统计内存使用情况,如何使 free 命令显示每一列的总和。 = total - free - buffers - cache)◈ free - 未被利用的内部存款和储蓄器(等同于 /proc/meminfo 中的 MemFree 和 SwapFree)◈ shared - 平常是有的时候文件系统应用的内存(等同于 /proc/meminfo 中的 Shmem;自内核 2.6.32 版本可用,不可用则展现为 0)◈ buffers - 内核缓冲区使用的内部存款和储蓄器(等同于 /proc/meminfo 中的 Buffers)◈ cache - 页面缓存和 Slab 分配机制使用的内部存款和储蓄器(等同于 /proc/meminfo 中的 Cached 和 Slab)◈ buff/cache - buffers 与 cache 之和◈ available - 在不划算交流空间的景观下,臆想能够被新运维的应用程序所运用的内部存储器空间。与 cache 或者 free 部分不相同,这一列把页面缓存计算在内,並且不是颇负的可回笼的 slab 内部存款和储蓄器都能够真正被回笼,因为或者有被侵夺的有个别。(等同于 /proc/meminfo 中的 MemAvailable;自内核 3.14 版本可用,自内核 2.6.27 版本最初效仿;在其余版本上这些值与 free 这一列相通卡塔尔国

Q2. 如何改动显示的单位吗?

如果供给的话,你能够变动内部存款和储蓄器的呈现单位。比方说,想要内部存款和储蓄器以兆为单位出示,你能够用 -m其大器晚成参数:

  1. free -m

free command display metrics change

相像地,你可以用 -b 以字节呈现、-k 以 KB 显示、-m 以 MB 显示、-g 以 GB 显示、--tera 以 TB 显示。

Q3. 怎么显得可读的结果吗?

free 命令提供了 -h 这几个参数使出口转速为可读的格式。

  1. free -h

用那几个参数,free 命令会自个儿主宰用什么样单位出示内部存款和储蓄器的各种数值。举个例子:

diplsy data fromm free command in human readable form

Q4. 怎么让 free 命令以自然的时刻间距持续运维?

你能够用 -s 那个参数让 free 命令以一定的光阴间隔持续地实施。您需求传递给命令行二个数字参数,做为这些小时间距的秒数。

例如,使 free 命令每隔 3 秒实践叁次:

  1. free -s 3

假设您必要 free 命令只进行一次,您能够用 -c 那几个参数钦点实施的次数:

  1. free -s 3 -c 5

下面那条命令能够确定保证 free 命令每间距 3 秒实践一回,总共实施 5 次。

注:这几个职能近来在 Ubuntu 系统上还设有 难点[1],所以未有测量试验。

Q5. 怎么使 free 基于 1000 计算内部存款和储蓄器,并不是 1024?

万大器晚成你钦命 free 用 MB 来突显内部存款和储蓄器(用 -m 参数卡塔 尔(阿拉伯语:قطر‎,但又想依据 1000 来计算结果,能够用 --sj 这一个参数来完成。下图展现了用与不用那一个参数的结果:

How to make free use power of 1000 (not 1024) while displaying memory figures

Q6. 如何使 free 命令彰显每一列的总和?

若是您想要 free 命令展现每一列的总和,你能够用 -t 这几个参数。

  1. free -t

如下图所示:

How to make free display total of columns

请注意 Total 那豆蔻梢头行现身了。

总结

free 命令对于系统管理来说是个极端有用的工具。它有无数参数能够定制化您的出口,易懂易用。大家在本文中也波及了重重有效的参数。演习完事后,请您移步至 man 手册[2]叩问更加多内容。


via: 

作者:Himanshu Arora[4] 译者:jessie-pang 校对:wxy

正文由 LCTT 原创编写翻译,Linux中夏族民共和国 荣誉推出

LCTT 译者jessie-pang ?共计翻译:1 篇进献时间:5 天

引入小说

< 左右滑行查占卜关文章 >

点击图片、输入小说 ID 或识别二维码直达

原作链接请访谈“原来的书文链接”拿到可点击的文内链接、全尺寸原图和有关小说。

第10章 系统状态统计和查看,第10章状态


正文目录:

10.1 /proc的意义及表明

10.2 查看进程音讯

10.2.1 pstree命令

10.2.2 ps命令

10.2.3 ps后grep问题

10.2.4 top、htop以及iftop命令

10.3 vmstat命令

10.4 iostat命令

10.5 sar命令

10.5.1 计算cpu使用状态

10.5.2 计算内部存款和储蓄器使用情状

10.5.3 总结互联网流量

10.5.4 查看队列意况

10.5.5 计算磁盘IO景况

10.6 free命令


写在前面包车型地铁话:本文是假设你曾经有了经过、内部存款和储蓄器、cpu的论争根基而写的,文中涉及的各类场合只交给了简短表明而没有表达它们的意思,假如不懂这几个理论性的东西,本文恐怕令你看的第一手想右上角叉叉。关于那些理论,能够翻阅笔者另风度翩翩篇散文:

10.1 /proc的含义及表达

在Linux中查看各个景况,其实质是查看内核中有关进度的数据结构中的项,通过工具将其格式化后输出出来。但是根本的数目是纯属不能随随便便翻看或退换的,起码不可能一贯去修改。所以,在linux上出现了伪文件系统/proc,它是内核中各属性或气象向外提供访谈和改过的接口。

在/proc下,记录了基本功本身的数量新闻,各进度独立的数目音信,计算音讯等。绝大好些个文件都以只读不可改的,即便对root也一直以来,但/proc/sys除此之外,为啥这么稍后解释。

内部数字命名的目录对应的是各进度的pid号,其内的公文记录的都以该进程目前的数量消息,且都以只读的,比方记录命令新闻的cmdline文件,进度使用哪颗cpu消息cpuset,进度占用内部存款和储蓄器的音信mem文件,进程IO音信io文件等其余各个新闻文件。

[[email protected] ~]# ls /proc/6982
attr       clear_refs       cpuset   fd      loginuid   mounts      numa_maps      pagemap      schedstat  stat     task
autogroup  cmdline          cwd      fdinfo  maps       mountstats  oom_adj        personality  sessionid  statm    wchan
auxv       comm             environ  io      mem        net         oom_score      root         smaps      status
cgroup     coredump_filter  exe      limits  mountinfo  ns          oom_score_adj  sched        stack      syscall

非数字命名的目录各有用场,举例bus表示总线音信,driver表示驱动音讯,fs表示文件系统特殊音讯,net表示网络音信,tty表示跟物理终端有关的音信,最新鲜的四个是/proc/self和/proc/sys。

先说/proc/self目录,它意味着的是现阶段正在访谈/proc目录的经过,因为/proc目录是水源数据向外记录的接口,所以当前访问/proc目录的过程表示的正是当前cpu正在实践的进度。假如实施cat /proc/self/cmdline,会发觉其结果总是该命令本身,因为cat是手动敲入的吩咐,它是重视进度,cpu会立刻实践该命令。

再则/proc/sys那些目录,该目录是为大班提供用来订正内核运营参数的,所以该目录中的文件对root都是可写的,举例管理数据包转载功效的/proc/sys/net/ipv4/ip_forward文件。使用sysctl命令改进内核运维参数,其本质也是改良/proc/sys目录中的文件。

10.2 查看进程新闻

10.2.1 pstree命令

pstree命令将以树的款型展现进度音讯,私下认可树的分支是收拢的,也不出示pid,要显得那些消息供给内定相应的选项。

pstree [-a] [-c] [-h] [-l] [-p] [pid]

选项说明:
-a:显示进程的命令行
-c:展开分支
-h:高亮当前正在运行的进程及其父进程
-p:显示进程pid,此选项也将展开分支
-l:允许显示长格式进程。默认在显示结果中超过132个字符时将截断后面的字符。

例如:

10.2.2 ps命令

ps命令查看当前那生机勃勃阵子的进度新闻,注意查看的是静态进度信息,要查看随即刷新的动态进程音信(如windows的过程微处理机那样,每秒刷新一回),使用top或htop命令。

这么些命令的man文书档案及其复杂,它同一时间支持3连串型的选项:GUN/BSD/UNIX,分裂门类的选项其出示的新闻格式不后生可畏致。有个别加了"-"的是SysV风格 的选项,不加"-"的是BSD选项,加不加"-"它们的意义是不平等的,比如ps aux 和ps -aux是莫衷一是的。

实际只需驾驭少数多少个筛选就可以,关键的是要打听ps显示出的长河新闻中每一列代表怎么着性质。

对此BSD风格的选项,只需领会三个用法ps aux足以,选项"a"表示列出信赖于极端的经过,选项"x"表示列出不依据于极端的长河,所以两个结合就表示列出全部进度,选项"u"表示表现的进度音讯是以顾客为导向的,不用管它怎样是以顾客为导向,用ps aux就对的。

[[email protected] ~]# ps aux | tail
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1340  0.0  0.0  27176   588 ?        Ss   20:30   0:00 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
root       2266  0.0  0.1  93212  2140 ?        Ss   20:30   0:00 /usr/libexec/postfix/master -w
postfix    2268  0.0  0.2  93384  3992 ?        S    20:30   0:00 qmgr -l -t unix -u
postfix    2306  0.0  0.2  93316  3972 ?        S    20:31   0:00 pickup -l -t unix -u
root       2307  0.0  0.2 145552  5528 ?        Ss   20:31   0:00 sshd: [email protected]/0
root       2309  0.0  0.0      0     0 ?        S<   20:31   0:00 [kworker/3:1H]
root       2310  0.0  0.1 116568  3184 pts/0    Ss   20:31   0:00 -bash
root       2352  0.0  0.0      0     0 ?        S<   20:31   0:00 [kworker/1:2H]
root       2355  0.0  0.0 139492  1632 pts/0    R+   20:34   0:00 ps aux
root       2356  0.0  0.0 107928   676 pts/0    R+   20:34   0:00 tail

各列的意义:

  • %CPU:表示CPU占用百分比,注意,CPU的权衡方式是占不常间,所以百分比的酌量形式是"进程占用cpu时间/cpu总时间",并非cpu工作强度的情事。
  • %MEM:表示各进度所占物理内部存款和储蓄器百分比。
  • VSZ:表示各进程占用的设想内部存款和储蓄器,约等于其在线性地址空间中实际据有的内部存款和储蓄器。单位为kb。
  • 奔驰M级SS:表示各进度占用的实际物理内部存储器。单位为Kb。
  • TTY:表示归于哪个终端的进度,"?"表示不凭借于极端的经过。
  • STAT:进度所处的气象。
    •     D:不可中断睡眠
    •     PRADO:运维中或等候队列中的进度(running/runnable)
    •     S:可暂停睡眠
    •     T:进度处于stopped状态
    •     Z:丧尸进程

    对于BSD风格的ps选项,进程的图景还有或者会彰显下边多少个结合信息。

    •     <:高优先级进程
    •     N:低优先级进程
    •     L:该进程在内部存款和储蓄器中有被锁定的页
    •     s:表示该进程是session leader,即经过组的首进程。举个例子管道侧面的进度,shell脚本中的shell进度
    •     l:表示该进程是三个线程
    •     +:表示是前段进度。前段进程经常的话都是依据于极端的
  • START:表示经过是曾几何时被创设的

  • TIME:表示各进度占用的CPU时间
  • COMMAND:表示经过的命令行。若是是内核线程,则应用方括号"[]"包围

留意到了没,ps aux没有呈现出ppid。

此外常用的ps选项是ps -elf。此中"-e"表示输出全体经过音信,"-f"和"-l"分别代表全格式输出和长格式输出。全格式会输出cmd的任何参数。

[[email protected] ~]# ps -lf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S postfix    2306   2266  0  80   0 - 23329 ep_pol 20:31 ?        00:00:00 pickup -l -t unix -u
4 S root       2307   1141  0  80   0 - 36388 poll_s 20:31 ?        00:00:00 sshd: [email protected]/0
1 S root       2309      2  0  60 -20 -     0 worker 20:31 ?        00:00:00 [kworker/3:1H]
4 S root       2310   2307  0  80   0 - 29142 wait   20:31 pts/0    00:00:00 -bash
1 S root       2433      2  0  60 -20 -     0 worker 21:21 ?        00:00:00 [kworker/1:1H]
1 S root       2479      2  0  80   0 -     0 worker 21:25 ?        00:00:00 [kworker/1:0]
1 S root       2503      2  0  60 -20 -     0 worker 21:28 ?        00:00:00 [kworker/1:2H]
1 S root       2532      2  0  80   0 -     0 worker 21:30 ?        00:00:00 [kworker/1:1]
0 R root       2539   2310  0  80   0 - 34873 -      21:33 pts/0    00:00:00 ps -elf
0 S root       2540   2310  0  80   0 - 26982 pipe_w 21:33 pts/0    00:00:00 tail

各列的意思:

  • F:程序的标识位。0代表该程序独有日常权限,4意味着全体root一级助理馆员权限,1意味该进度被成立的时候只举办了fork,未有实行exec
  • S:进度的气象位,注意ps选项加了"-"的是非BSD风格选项,不会有"s""<""N""+"等的境况标志位
  • C:CPU的百分比,注意衡量形式是岁月
  • P奥迪Q3I:进度的优先级,值越小,优先级越高,越早被调治类选中运作
  • NI:进度的NICE值,值为-20到19,影响优先级的措施是PTiggoI(new)=P哈弗I(old)+NI,所以NI为负数的时候,越小将招致进度优先级越高。
  •     :但要注意,NICE值只可以影响非实时经过。
  • ADDPRADO:进度在大意内部存款和储蓄器中哪些地方。
  • SZ:进度占用的莫过于物理内存
  • WCHAN:若进度处于睡眠状态,将体现其对应内核线程的名称,若进度为奇骏状态,则彰显"-"

10.2.3 ps后grep问题

在ps后增进grep筛选指标经过时,总会开掘grep本人进度也被突显出来。先表明下为何会这么。

[[email protected] ~]# ps aux | grep "crond"
root       1425  0.0  0.1 117332  1276 ?        Ss   Jun10   0:00 crond
root       8275  0.0  0.0 103256   856 pts/2    S+   17:07   0:00 grep crond

通过管道将ps结果传递给grep时,管道教协会和了ps和grep两进度间通讯,但管道的真相是过程间数据传递。管道左侧的出口数据放入内部存款和储蓄器,由管道左侧的进度读取。假诺划分的内部存款和储蓄器不足以完全存放输出数据,则管道侧面的历程将直接等候,直到管道左侧抽取内部存款和储蓄器中生龙活虎部分的数码以让管道左侧包车型地铁进度继续输出,而管道侧面的进度在管道左侧包车型客车进度运维后也立马运维了,可是它直接处在等候状态,等待接纳管道传递来的数量(有如平时推行命令时不给输入文件将会一直守候输入形似卡塔 尔(英语:State of Qatar)。

也正是说,管道左右两端的进度是同期被创建的(不考虑父进度成立进度消耗的那一点时间),但数目传输是有前后相继顺序的,右侧先传,左侧后收,所以可能会诱致交叉的情形,侧面尚未实施完,就擒获到了右边的长河音信。在那体现在ps还并未总计完进程新闻时,grep进度就早就被ps抓到了。

要将grep本身进度清除在结果之外,方法有二:

[[email protected] ~]# ps aux | grep "crond" | grep -v "grep"   # 使用-v将grep自己筛选掉
root       1425  0.0  0.1 117332  1276 ?        Ss   Jun10   0:00 crond   

[[email protected] ~]# ps aux | grep "cron[d]"
root       1425  0.0  0.1 117332  1276 ?        Ss   Jun10   0:00 crond

第三种艺术能打响是因为grep进度被ps捕获时的结果是"grep cron[d]",而使用cron[d]十分时,它将不能不相称crond,所以"grep cron[d]"被筛选掉了。其实增添其他字符将更易于领会。

[[email protected] ~]# ps aux | grep "cron[dabc]"
root       1425  0.0  0.1 117332  1276 ?        Ss   Jun10   0:00 crond

10.2.4 top、htop以及iftop命令

top命令查看动态进程景况,暗中同意每5秒刷新叁回。

top选项表明:

-d:指定top刷新的时间间隔,默认是5 秒
-b:批处理模式,每次刷新分批显示
-n:指定top刷新几次就退出,可以配合-b使用
-p:指定监控的pid,指定方式为-pN1 -pN2 ...或-pN1, N2 [,...]
-u:指定要监控的用户的进程,可以是uid也可以是user_name

在top动态形式下,按下各样键能够进行区别操作。使用"h"或"?"能够查阅相关键的验证。

  •   1     :(数字生机勃勃)表示是还是不是要在top的头顶展现出多个cpu音信
  •   H     :表示是或不是要来得线程,私下认可不出示
  •   c,S   : c代表是还是不是要实行进程的命令行,S表示显示的cpu时间是或不是是积存格局,cpu积累形式下已身故的子进程cpu时间会积累到父进度中
  •   x,y   :x高亮排序的列,y表示高亮running进度
  •   u     :仅展现钦赐客商的进度
  •   n or #:设置要显示最大的历程数量
  •   k     :杀进程
  •   q     :退出top
  •   P :以CPU 的施用能源排序呈现
  •   M :以Memory 的采用财富排序展现
  •   N :以PID 来排序

以下是top的叁回结果。

[[email protected] ~]# top
top - 17:43:44 up 1 day, 14:16,  2 users,  load average: 0.10, 0.06, 0.01
Tasks: 156 total,   1 running, 155 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu2  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004348k total,   417928k used,   586420k free,    52340k buffers
Swap:  2047996k total,        0k used,  2047996k free,   243800k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                             
     1 root      20   0 19364 1444 1132 S  0.0  0.1   0:00.96 init                                                                                 
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                              
     3 root      RT   0     0    0    0 S  0.0  0.0   0:01.28 migration/0                                                                          
     4 root      20   0     0    0    0 S  0.0  0.0   0:00.59 ksoftirqd/0                                                                           
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0  
  • 第1行:和w命令的首先行同样,也和uptime命令的结果生龙活虎律。此行各列分别代表"当明日子"、"已开机时间长度"、"当前在线客户"、"前1、5、15分钟平均负载率"。
  • 第2行:分别表示总进程数、running状态的长河数、睡眠情状的进度数、甘休状态进度数、尸鬼进度数。
  • 第3-6行:每颗cpu的状况。
  •      us = user mode
  •      sy = system mode
  •      ni = low priority user mode (nice)(顾客空间中低优先级进度的cpu占用百分比)
  •      id = idle task
  •      wa = I/O waiting
  •      hi = servicing IHavalQs(不可中断睡眠,hard interruptible)
  •      si = servicing soft I兰德TucsonQs(可间歇睡眠,soft interruptible)
  •      st = steal (time given to other DomU instances)(被盗走的cpu时间,日常被虚构化软件偷走)
  • 第7-8行:从字面意思驾驭就能够。
  • VIRT:设想内部存款和储蓄器总数
  • RES:实际内部存款和储蓄器总的数量
  • SH奥迪Q5:分享内部存款和储蓄器量
  • TIME:进度占用的cpu时间(若开启了岁月积淀方式,则此处展现的是储存时间)

top命令即便丰裕有力,然而太年龄大了。所以有了新生代的top命令htop。htop私下认可未有安装,须要手动安装。

[[email protected] ~]# yum -y install htop

htop能够选择鼠标完毕点击选中。其余应用方式和top近似,使用h查看各开关意义就可以。

iftop用于动态展现网络接口的数额流量。用法也十分轻易,按下h键就可以获得协助。

10.3 vmstat命令

在乎vmstat的第三回总括是自开机起的平均值新闻,从第一遍开端的总结才是钦点刷新时间间距内的能源采纳消息,若不点名刷新时间间隔,则暗许只呈现一遍总括音讯。

vmstat [-d] [delay [ count]]
vmstat [-f]

选项说明:
-f:统计自开机起fork的次数。包括fork、clone、vfork的次数。但不包括exec次数。
-d:显示磁盘统计信息。
delay:刷新时间间隔,若不指定,则只统计一次信息就退出vmstat。
count:总共要统计的次数。

例如,只总结贰遍音讯。

[[email protected] ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 583692  52684 244200    0    0     5     3    4    5  0  0 100  0  0

里面各列的意思如下:

Procs

  •    r: 等待队列中的进度数
  •    b: 不可中断睡眠的进程数

Memory

  •    swpd: 设想内部存储器使用总量
  •    free: 空闲内部存储器量
  •    buff: buffer占用的内部存款和储蓄器量(buffer用于缓冲写)
  •    cache: cache占用的内部存款和储蓄器量(cache用于缓存读,谐音"快取",即为了加速取多少的速度)

Swap

  •    si:从磁盘加载到swap分区的数据流量,单位为"kb/s"
  •    so: 从swap分区写到磁盘的数额流量,单位为"kb/s"

IO

  •    bi: 从块设备选取到数量的速率,单位为blocks/s
  •    bo: 发送数据到块设备的速率,单位为blocks/s

System

  •    in: 每秒中断数,包蕴石英钟中断数量
  •    cs: 每秒上下文切换次数

CPU:总计的是cpu时间百分比,具体新闻和top的cpu总计列同样

  •    us: Time spent running non-kernel code. (user time, including nice time)
  •    sy: Time spent running kernel code. (system time)
  •    id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
  •    wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
  •    st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

还足以计算磁盘的IO音讯。总括新闻的结果比较轻松看懂,所以略过。

10.4 iostat命令

iostat主要计算磁盘或分区的完整选取状态。也足以输出cpu新闻,甚至是NFS网络文件系统的新闻。同vmstat/sar同样,第三遍总计的都以自系统开机起的平分总括音信。

iostat [ -c ] [ -d ] [ -n -h ][ -k | -m ] [ -p [device][,...] ] [ interval [ count ] ]

选项说明:
-c:统计cpu信息
-d:统计磁盘信息
-n:统计NFS文件系统信息
-h:使NFS统计信息更人类可读化
-k:指定以kb/s为单位显示
-m:指定以mb/s为单位显示
-p:指定要统计的设备名称
-y:指定不显示第一次统计信息,即不显示自开机起的统计信息。
interval:刷新时间间隔
count:总统计次数

例如:

[[email protected] ~]# iostat
Linux 2.6.32-504.el6.x86_64 (xuexi.longshuai.com)       06/11/2017      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.03    0.01    0.00   99.96

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.58        39.44        23.14    5557194    3259968
sdb               0.00         0.03         0.00       4256          0

各列的含义都很分明,从字面就可以精通。

  • tps:每秒transfer速率(transfers per second),一回对物理设备的IO哀告为三个transfer,但七个逻辑乞请恐怕只组成三个transfer
  • Blk_read/s:每秒读取的block数量
  • Blk_wrtn/s:每秒写入的block总的数量
  • Blk_read:读取的总block数量
  • Blk_wrtn:写入的总block数量

10.5 sar命令

sar是一个卓殊强盛的属性剖判工具,它能够得到系统的cpu/等待队列/磁盘IO/内部存储器/互联网等质量指标。

效益多的必然结果是选项多,应用复杂,但假使知道有些常用的选项能够。

sar [options] [-o filename] [delay [count] ]
选项说明:
-A:显示系统所有资源运行状况
-b:显示磁盘IO和tranfer速率信息,和iostat的信息一样,是总体IO统计信息
-d:显示磁盘在刷新时间间隔内的活跃情况,可以指定一个或多个设备,和-b不同的是,它显示的是单设备的IO、transfer信息。
  :建议配合-p使用显示友好的设备名,否则默认显示带主次设备号的设备名
-P:显示指定的某颗或某几颗cpu的使用情况。指定方式为,-P 0,1,2,3或ALL。
-u:显示每颗cpu整体平均使用情况。-u和-P的区别通过下面的示例很容易区分。
-r:显示内存在刷新时间间隔内的使用情况
-n:显示网络运行状态。后可接DEV/NFS/NFSD/FULL等多种参数。
  :DEV表示显示网路接口信息,NFS和NFSD分别表示显示NFS客户端服务端的流量信息,FULL表示显示所有信息。
-q:显示等待队列大小
-o filename:将结果存入到文件中
delay:状态刷新时间间隔
count:总共刷新几次

10.5.1 总结cpu使用情形

[[email protected] ~]# sar -P ALL 1 2
Linux 3.10.0-327.el7.x86_64 (server2.longshuai.com)     06/20/2017      _x86_64_        (4 CPU)

01:18:49 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
01:18:50 AM     all      0.00      0.00      0.25      0.00      0.00     99.75
01:18:50 AM       0      0.00      0.00      0.00      0.00      0.00    100.00
01:18:50 AM       1      0.00      0.00      0.00      0.00      0.00    100.00
01:18:50 AM       2      0.00      0.00      0.00      0.00      0.00    100.00
01:18:50 AM       3      0.00      0.00      0.00      0.00      0.00    100.00

01:18:50 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
01:18:51 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
01:18:51 AM       0      0.00      0.00      0.00      0.00      0.00    100.00
01:18:51 AM       1      0.00      0.00      0.99      0.00      0.00     99.01
01:18:51 AM       2      0.00      0.00      0.00      0.00      0.00    100.00
01:18:51 AM       3      0.00      0.00      0.00      0.00      0.00    100.00

Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
Average:        all      0.00      0.00      0.12      0.00      0.00     99.88
Average:          0      0.00      0.00      0.00      0.00      0.00    100.00
Average:          1      0.00      0.00      0.50      0.00      0.00     99.50
Average:          2      0.00      0.00      0.00      0.00      0.00    100.00
Average:          3      0.00      0.00      0.00      0.00      0.00    100.00

各列的意思就不再赘言了,在头里多少个新闻查阅命令已经表明过多次了。

在地方的例证中,总结了具有cpu(0,1,2,3共4颗)每秒的图景音信,每秒还拓展了一回集中,即all,最后还对每颗cpu和汇总all总结了平均值。而笔者辈的确须求关怀的是最后的average部分的idle值,idle越小,表明cpu处于空闲时间越少,该颗或全部cpu使用率就越高。

要么间接对全部进行总括。如下:

[[email protected] ~]# sar -u 1 2
Linux 3.10.0-327.el7.x86_64 (server2.longshuai.com)     06/20/2017      _x86_64_        (4 CPU)

01:18:37 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
01:18:39 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
01:18:40 AM     all      0.00      0.00      0.23      0.00      0.00     99.77
Average:        all      0.00      0.00      0.12      0.00      0.00     99.88

10.5.2 计算内部存款和储蓄器使用境况

[[email protected] ~]# sar -r 1 2
Linux 3.10.0-327.el7.x86_64 (server2.longshuai.com)     06/20/2017      _x86_64_        (4 CPU)

01:49:04 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
01:49:05 AM   1315968    552720     29.58       932    319888    225164      5.75    282760     85740         0
01:49:06 AM   1315984    552704     29.58       932    319888    225164      5.75    282760     85740         0
Average:      1315976    552712     29.58       932    319888    225164      5.75    282760     85740         0

此中kbdirty表示内部存款和储蓄器中脏页的轻重缓急,即内存中还也可以有稍微应该刷新到磁盘的数目。

10.5.3 总结互连网流量

首先种方法是查看/proc/net/dev文件。

[[email protected] ~]# cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0:  209644    1834    0    0    0     0          0         0   981664    1679    0    0    0     0       0          0
    lo:     340       4    0    0    0     0          0         0      340       4    0    0    0     0       0          0

关切列:receive和transmit分别表示收包和发包,关怀每一个网卡的bytes就能够得到网卡的景色。写一个剧本总括每秒的差值即为网络流量。

抑或使用sar -n命令总计网卡接口的数码。

[[email protected] ~]# sar -n DEV 1 2
Linux 3.10.0-327.el7.x86_64 (server2.longshuai.com)     06/20/2017      _x86_64_        (4 CPU)

01:51:11 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
01:51:12 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:51:12 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

01:51:12 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
01:51:13 AM      eth0      0.99      0.99      0.06      0.41      0.00      0.00      0.00
01:51:13 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:         eth0      0.50      0.50      0.03      0.21      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

各列的含义如下:

  • rxpck/s:每秒收到的包数量
  • txpck/s:每秒发送的包数量
  • rxkB/s:每秒收到的数据,单位为kb
  • txkB/s:每秒发送的数码,单位为kb
  • rxcmp/s:每秒收到的缩短后的包数量
  • txcmp/s:每秒发送的减削后的包数量
  • rxmcst/s:每秒收到的多播包数量

10.5.4 查看队列情状

[[email protected] ~]# sar -q
Linux 3.10.0-327.el7.x86_64 (server2.longshuai.com)     06/20/2017      _x86_64_        (4 CPU)

12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
12:10:01 AM         0       446      0.01      0.02      0.05         0
12:20:01 AM         0       445      0.02      0.03      0.05         0
12:30:01 AM         0       446      0.00      0.01      0.05         0
Average:            0       446      0.01      0.02      0.05         0

每列意义解释:

  • runq-sz:等待队列的长度,不包涵正在周转的进程
  • plist-sz:任务列表中的进程数量,即总任务数
  • ldavg-N:过去1分钟、5分钟、15分钟内系统的平分哎
  • blocked:当前因为IO等待被卡住的天职位数量量

10.5.5 总结磁盘IO情形

[[email protected] ~]# sar -d -p 1 2
Linux 3.10.0-327.el7.x86_64 (server2.longshuai.com)     06/20/2017      _x86_64_        (4 CPU)

12:53:06 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:53:07 AM       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

12:53:07 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:53:08 AM       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

分别总计的是12:53:06到12:53:07和12:53:07到12:53:08这两秒的IO使用景况。

各列的含义如下:

  • tps:transfer per second,每秒的transfer速率,二回物理IO央求算二次transfer,但频频逻辑IO乞请恐怕构成起来才算一回transfer。
  • rd_sec/s:每秒读取的扇区数,扇区大小为512字节。
  • wr_sec/s:每秒写入的扇区数。
  • avgrq-sz:乞请写入设备的平分大小,单位为扇区。(The average size (in sectors) of the requests that were issued to the device)
  • avgqu-sz:哀告写入设备的平分队列长度。(The average queue length of the requests that were issued to the device.)
  • await:写入设备的IO须要的平分(消耗)时间,单位飞秒(The average time for I/O requests issued to the device to be served.)
  • svctm:离谱的列,该列以后将被移除,所以不用管
  • %util:最入眼的一列,显示的是器材的带宽景况。该列若贴近百分百,表明磁盘速率饱和了。

10.6 free命令

free用于查看内部存款和储蓄器使用意况。CentOS 6和CentOS 7上海展览中心示格式不太相像。

free [options]
选项说明:
-h:人类可读方式显式单位
-m:以MB为显示单位
-w:将buffers和cache分开单独显示。只对CentOS 7上有效
-s:动态查看内存信息时的刷新时间间隔
-c:一共要刷新多少次退出free

以下以CentOS 7上的free结果印证各列的含义。

[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1824         131        1286           8         407        1511
Swap:          1999           0        1999

Mem和Swap分别代表物理内部存款和储蓄器和置换分区的应用情况。

  • total:总内部存款和储蓄器空间
  • used:已利用的内部存储器空间。该值是total-free-buffers-cache的结果
  • free:未利用的内部存款和储蓄器空间
  • shared:/tmpfs总用的内部存储器空间。对内核版本有必要,若版本远远不够,则体现为0。
  • buff/cache:buffers和cache的总占用空间
  • available:可用的内部存款和储蓄器空间。即程序运营时,将感觉可用空间犹如此多。可用的内部存款和储蓄器空间为free+buffers+cache。

据此available才是确实供给关切的可应用内部存款和储蓄器空间量。

动用-w能够将buffers/cache分开展现。

[[email protected] ~]# free -w -m
              total        used        free      shared     buffers       cache   available
Mem:           1824         131        1286           8           0         406        1511
Swap:          1999           0        1999

还足以动态总计内部存款和储蓄器音讯,比如每秒总括一回,总计2次。

[[email protected] ~]# free -w -m -s 1 -c 2
              total        used        free      shared     buffers       cache   available
Mem:           1824         130        1287           8           0         406        1512
Swap:          1999           0        1999

              total        used        free      shared     buffers       cache   available
Mem:           1824         130        1287           8           0         406        1512
Swap:          1999           0        1999

以下是CentOS 6上的free结果。

[[email protected] ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        415        565          0         53        239
-/+ buffers/cache:        121        859
Swap:         1999          0       1999

在那结果中,"-/+ buffers/cache"的free列才是实在可用的内部存款和储蓄器空间了,即CentOS 7上的available列。

貌似的话,内部存款和储蓄器可用量的限量低于十分六相应要引起注意了。

 

回到种类小说大纲:

转发请申明出处:

系统状态总计和查看,第10章状态 本文目录: 10.1 /proc的含义及注明 10.2 查看进度新闻 10.2.1 pstree命令 10.2.2 ps命令 10.2.3 ps后grep难题...

编辑:服务器运维 本文来源:10.5.2 统计内存使用情况,如何使 free 命令显示每

关键词: