系统状态计算和查阅

##/proc的意义
在linux查看各类情状,其实质是查看内核中相关进度的数据结构中的项通过工具将其格式化后输出出来。可是基础的数目是相对无法随意翻动或转移的,至少无法一贯去修改。所以,在linux上出现了伪文件系统/proc,它是根本中各属性或状态向外提供访问和改造的接口。
##查看进度音讯

第拾章 系统状态总结和查阅,第7章状态


本文目录:

十.一 /proc的意义及评释

10.二 查看进度音讯

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命令

拾.5.1 总括cpu使用情形

十.5.二 总结内部存款和储蓄器使用情况

10.5.3 总括网络流量

十.五.4 查看队列景况

拾.5.伍 总括磁盘IO意况

10.6 free命令


写在前方的话:本文是假若你曾经有了经过、内部存款和储蓄器、cpu的反驳基础而写的,文中涉及的各样景况只交给了简便表达而从不解释它们的含义,即使不懂那么些理论性的东西,本文恐怕让您看的一贯想右上角叉叉。关于这个理论,可以翻阅我另1篇小说:http://www.cnblogs.com/f-ck-need-u/p/7058920.html

pstree命令

10.一 /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目录中的文件。

选料表明:
  -a:彰显进度的命令行
  -c:展开分支
  -h:高亮显示当前正值运转的经过及其父进度
  -p:呈现过程的pid,此选项也将举办分之
  -l:允许呈现长格式进度

10.贰 查看进度音信

ps命令

10.2.1 pstree命令

pstree命令将以树的花样显得进度消息,默许树的分段是收拢的,也不出示pid,要出示那个音讯必要钦命相应的选项。

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

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

例如:

ps aux各列的含义

10.2.2 ps命令

ps命令查看当前这一刻的进度音讯,注意查看的是静态进度音讯,要查看随时刷新的动态进度消息(如windows的历程管理器那样,每秒刷新2次),使用top或htop命令。

那几个命令的man文书档案及其复杂,它同时援助三种档案的次序的选项:GUN/BSD/UNIX,分裂品种的选项其出示的音讯格式不一致。某个加了”-“的是SysV风格
的选项,不加”-“的是BSD选项,加不加”-“它们的意思是分裂等的,比方ps aux
和ps -aux是例外的。

实在只需调节少数多少个挑选就能够,关键的是要询问ps展现出的进度音讯中每1列代表如何性质。

对此BSD风格的选项,只需驾驭3个用法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。
  • SportageSS:表示各进程占用的莫过于物理内部存款和储蓄器。单位为Kb。
  • TTY:表示属于哪个终端的经过,”?”表示不依赖于极端的历程。
  • STAT:进度所处的状态。
    •     D:不可中断睡眠
    •     奥迪Q五:运营中或等候队列中的进度(running/runnable)
    •     S:可暂停睡眠
    •     T:进度处于stopped状态
    •     Z:僵尸进度

    对于BSD风格的ps选项,进程的情况还会来得下边多少个结合消息。

    •     <:高优先级进度
    •     N:低优先级进度
    •     L:该进度在内部存款和储蓄器中有被锁定的页
    •     s:表示该进度是session
      leader,即经过组的首进度。举例管道左边的进度,shell脚本中的shell进度
    •     l:表示该进度是3个线程
    •     +:表示是前段进度。前段进度一般的话都以依靠于极端的
  • 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意味该程序唯有日常权限,肆表示全体root一流管理员权限,壹象征该进程被成立的时候只进行了fork,未有实行exec
  • S:进度的气象位,注意ps选项加了”-“的是非BSD风格选项,不会有”s””<“”N””+”等的图景标记位
  • C:CPU的百分比,注意度量格局是光阴
  • P景逸SUVI:进度的优先级,值越小,优先级越高,越早被调治类选中运行
  • NI:进度的NICE值,值为-20到1九,影响优先级的方法是P宝马X3I(new)=PCR-VI(old)+NI,所以NI为负数的时候,越小将导致进度优先级越高。
  •     :但要注意,NICE值只好影响非实时经过。
  • ADD帕杰罗:进程在情理内存中哪些地点。
  • SZ:进度占用的其实物理内部存款和储蓄器
  • WCHAN:若进度处于睡眠情状,将展现其对应内核线程的称呼,若进程为奔驰M级状态,则显示”-“

  %CPU:表示CPU占用百分比,总计格局是“过程占用CPU时间/CPU总时间”
  %MEM:表示各进程所占物理内部存储器百分比
  VSZ:表示各进程占用的虚拟内部存款和储蓄器,也正是其在线性地址空间中占据的内部存款和储蓄器
  TiguanSS:表示各进度占用的其实物理内部存款和储蓄器,单位为Kb
  TTY:表示属于哪个终端,”?”表示不借助于极端的经过
  TAT:进度所处的情事
  D:不可中断睡眠
  酷路泽:运转中或等待队列中的进程(running/runnable)
  S:可暂停睡眠
  T:进度处于stopped状态
  Z:僵尸进度
对此BSD风格的ps选项,进程的情况还会来得上面几个结合新闻。
  <:高优先级进程
  N:低优先级进程
  L:该进度在内部存款和储蓄器中有被锁定的页
  s:表示该进度是session leader,即经过组的首进程。比方管道左侧的
进度,shell脚本中的shell进度
  l:表示该进度是一个线程
  +:表示是前段进度。前段进度一般的话都以依靠于极端的

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两进度间通讯,但管道的五指山真面目是经过间数据传递。管道左侧的输出数据放入内部存款和储蓄器,由管道右侧的进度读取。假使划分的内部存款和储蓄器不足以完全存放输出数据,则管道左侧的经过将平素守候,直到管道右侧抽出内存中壹部分的数额以让管道左边的长河继续输出,而管道左边的进程在管道左侧的进度运行后也立刻运维了,但是它间接处于等候状态,等待接受管道传递来的数量(仿佛日常实行命令时不给输入文件将会一向等待输入一样)。

相当于说,管道左右两端的进度是还要被成立的(不思量父进度创建进程消耗的那一点时间),但数据传输是有先后顺序的,左侧先传,左侧后收,所以恐怕会促成交叉的景观,左边还没推行完,就抓获到了左侧的经过消息。在此地浮以往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

  START:表示经过是曾几何时被创设的
  TIME:表示各进度占用的CPU时间
  COMMAND:表示经过的命令行。即使是内核线程,则利用方括号”[]”包围

10.2.4 top、htop以及iftop命令

top命令查看动态进度意况,私下认可每五秒刷新叁回。

top选项表达:

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

在top动态情势下,按下各类键能够进行不一样操作。使用”h”或”?”能够查占星关键的求证。

  •   一     :(数字一)表示是或不是要在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的1遍结果。

[[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  
  • 第2行:和w命令的第一行同样,也和uptime命令的结果同样。此行各列分别代表”当前光阴”、”已开机时长”、”当前在线用户”、”前一、伍、15分钟平均负载率”。
  • 第3行:分别代表总进程数、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 IEnclaveQs(不可中断睡眠,hard interruptible)
  •      si = servicing soft I奥迪Q5Qs(可暂停睡眠,soft interruptible)
  •      st = steal (time given to other DomU
    instances)(被盗伐的cpu时间,一般被虚拟化软件偷走)
  • 第拾-八行:从字面意思通晓就可以。

  • VIRT:虚拟内部存款和储蓄器总的数量
  • RES:实际内部存储器总的数量
  • SHBMWX五:共享内部存款和储蓄器量
  • TIME:进度占用的cpu时间(若开启了时光积攒格局,则此处展现的是积累时间)

top命令尽管可怜有力,可是太老了。所以有了新生代的top命令htop。htop暗许未有安装,必要手动安装。

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

htop可以选用鼠标实现点击选中。别的使用格局和top类似,使用h查看各按钮意义就能够。

iftop用于动态展现互联网接口的数量流量。用法也很轻松,按下h键就能够获得支持。

ps -elf

10.3 vmstat命令

注意vmstat的第3遍总括是自开机起的平均值信息,从第2遍早先的总括才是点名刷新时间间隔内的能源利用音信,若不点名刷新时间距离,则暗中同意只彰显2回计算音信。

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

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

比如,只总结1次音信。

[[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音讯。计算音讯的结果很轻巧看懂,所以略过。

选择表达
  -e:输出全体音讯
  -f:全格式输出
  -l:长格式输出

10.4 iostat命令

iostat主要计算磁盘或分区的完好采取情形。也能够输出cpu音信,以致是NFS互连网文件系统的消息。同vmstat/sar一样,第2次总括的都是自系统开机起的平分计算音讯。

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),1次对物理设备的IO请求为三个transfer,但三个逻辑请求或然只组成二个transfer
  • Blk_read/s:每秒读取的block数量
  • Blk_wrtn/s:每秒写入的block总数
  • Blk_read:读取的总block数量
  • Blk_wrtn:写入的总block数量

各列的意义:
  F:程序的标识位。0意味着该程序唯有平日权限,任意味全部root一级管理员权
限,一表示该进度被创制的时候只实行了fork,未有实行exec
  S:进度的图景位,注意ps选项加了”-“的是非BSD风格选项,不会有”s””<“”N
“”+”等的意况标志位
  C:CPU的百分比,注意衡量格局是光阴
  P宝马X三I:进程的优先级,值越小,优先级越高,越早被调节类选中运营
  NI:进度的NICE值,值为-20到1九,影响优先级的秘诀是P本田UR-VI(new)=PPAJEROI(old)+
  NI,所以NI为负数的时候,越小将导致进程优先级越高。可是要留心NICE值
    只可以影响非实时经过。能够经过 renice xx 220肆一(xx为nice值
220四一进程号)
  ADDENCORE:进度在情理内部存款和储蓄器中哪些地方
  SZ:进度占用的实际上物理内部存款和储蓄器
  WCHAN:若进度处于睡眠情形,将显得其对应内核线程的名号,若进度为GL450状
态,则展现”-“
  ps 后grep的问题:

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:总共刷新几次

在ps后增加grep筛选目标经过时,总会开掘grep本人进度也被出示出来。先表达下为何会那样。
[root@xuexi ~]# 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两进度间通讯,但管道的真面目是经过间数据传递。管道左边的输出数据放入内部存款和储蓄器,由管道左侧的长河读取。如若划分的内部存款和储蓄器不足以完全存放输出数据,则管道左侧的进程将直接守候,直到管道左边抽出内部存款和储蓄器中一部分的数额以让管道左侧的经过继续输出,而管道左侧的历程在管道左侧的历程运行后也马上运维了,不过它直接处于等候状态,等待接受管道传递来的数量(就如日常实践命令时不给输入文件将会直接等候输入同样)。

十.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,一,二,叁共四颗)每秒的动静消息,每秒还拓展了三回集中,即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

也便是说,管道左右两端的进程是还要被创设的(不思量父进程创建进度消耗的那一点时间),但数据传输是有先后顺序的,右边先传,左侧后收,所以只怕会导致交叉的情况,左侧还没实施完,就擒获到了左侧的经过音信。在此地呈未来ps还不曾总结完进度新闻时,grep进程就曾经被ps抓到了。

10.5.二 总结内部存款和储蓄器使用状态

[[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表示内部存款和储蓄器中脏页的深浅,即内部存款和储蓄器中还有稍稍应该刷新到磁盘的多少。

要将grep本人进程排除在结果之外,方法有2:

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就能够获取网卡的动静。写1个剧本总括每秒的差值即为互连网流量。

要么利用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:每秒收到的多播包数量

[root@xuexi ~]# ps aux | grep “crond” | grep -v “grep” #
使用-v将grep本身筛选掉
root 1425 0.0 0.1 117332 1276 ? Ss Jun10 0:00 crond

十.伍.四 查看队列景况

[[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:过去一秒钟、伍分钟、壹6分钟内系统的平分哎
  • blocked:当前因为IO等待被卡住的天职数量

[root@xuexi ~]# 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]协作时,grep将不得不相配crond,而不可能相配cron
所以”grep cron[d]”被筛选掉了。其实增加此外字符将更便于通晓。

10.伍.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

独家计算的是1二:五叁:06到1二:伍三:0柒和12:五3:0七到1贰:53:0八那两秒的IO使用情形。

各列的含义如下:

  • tps:transfer per
    second,每秒的transfer速率,2遍物理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:最注重的1列,显示的是设备的带宽情形。该列若接近百分之百,表达磁盘速率饱和了。

[root@xuexi ~]# ps aux | grep “cron[dabc]”
root 1425 0.0 0.1 117332 1276 ? Ss Jun10 0:00 crond

10.6 free命令

free用于查看内部存款和储蓄器使用景况。CentOS 陆和CentOS 7上展现格式不太雷同。

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

以下以CentOS 七上的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

还足以动态总结内部存款和储蓄器音信,比如每秒总计三回,计算叁遍。

[[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
柒上的available列。

诚如的话,内部存款和储蓄器可用量的限量低于2/10应该要引起注意了。

 

回去连串文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

uptime命令
突显当前光阴,已开机械运输营多少时间,当前某些许用户已登6体系,以及一个平均负载值。
所谓负载率(load),即一定时长内,cpu运行队列中的平均进程数(包蕴线程),一般平均每分钟每核的进程数稍低于三都感觉经常,大于伍时负荷就曾经尤其高
在UNIX系统中,运转队列包蕴cpu正在实践的经过和等待cpu的历程(即所谓的可运转runable)。在Linux系统中,还包罗不得中断睡眠态(IO等待)的进度。运营队列中每出现二个进程,load
就加1,进度每退出运转队列,Load就减一。若是是多核cpu,则还要除以核数。
诸如,单核cpu上的负载值为”一.7三 0.60 7.九捌”时,表示:

转发请表明出处:http://www.cnblogs.com/f-ck-need-u/p/7059074.html

http://www.bkjia.com/Linuxjc/1216163.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/1216163.htmlTechArticle第10章 系统状态总括和查阅,第8章状态 本文目录:
十.一 /proc的含义及注明 十.二 查看进度音讯 10.二.一 pstree命令 拾.二.二 ps命令
拾.二.三 ps后grep难点…

  方今一分钟:一.7三意味着平均可运转的进度数,这一分钟要直接不断地实施这一.7三个经过。0.捌拾肆个经过等待该核cpu。

  目前5秒钟:平均进度数还欠缺1,表示该核cpu在过去四分钟空闲了四成的时刻。

  目前十五分钟:七.玖八意味平均可运维的进程数,那1六分钟要平素不停地实行那柒.玖八个进程。

  结合前陆分钟的结果,表明前一伍-前十分钟时间距离内,该核cpu的负载异常高。

比如是多核cpu,则还要将结果除以核数。举例4核时,有个别目前壹秒钟的负载值为三.7三,则意味有三.七15个进度在运作队列中,这几个进度可被调整至4核中的任何2个核上运维。近来1分钟的负载值为一.陆,表示那壹分钟内每核cpu都没事(一-一.6/4)=百分之陆十的时刻。所以,load的理想值是刚刚等于CPU的核数,小于核数的时候表示cpu有空余,高出核数的时候表示有进度在等候cpu,即系统财富不足

##top、htop、以及iftop命令

top命令查看动态过程情形,私下认可每五秒刷新三次。

top选项表达:

  -d:钦定刷新的日子距离,默感觉伍秒
  -b:批管理方式,每回刷新分批显示
  -n:钦赐top刷新一次就淡出,能够相配-b使用
  -p:钦点监察和控制的pid,内定格局为-pN一 -pN贰…或-pN1,N贰 [,…]
  -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的3次结果。

[root@xuexi ~]# 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

第贰行:和w命令的第3行同样,也和uptime命令的结果同样。此行各列分别代表”当前时光”、”已开机时间长度”、”当前在线用户”、”前1、5、壹六分钟平均负载率”。
第二行:分别代表总进度数、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 ICR-VQs(不可中断睡眠,hard interruptible)
  si = servicing soft I奇骏Qs(可暂停睡眠,soft interruptible)
  st = steal (time given to other DomU
instances)(被盗走的cpu时间,一般被虚拟化软件偷走)
第七-八行:从字面意思精通就可以。

  VIRT:虚拟内部存款和储蓄器总的数量

  RES:实际内部存款和储蓄器总的数量

  SHMurano:共享内部存款和储蓄器量

  TIME:进度占用的cpu时间(若开启了时间积攒情势,则此处显示的是积攒时间)

top命令纵然那么些强大,不过太老了。所以有了新生代的top命令htop。htop默许未有安装,需求手动安装。

##vmstat命令
专注vmstat的首先次总计是自开机起的平均值消息,从第一次开首的总结才是点名刷新时间间隔内的能源选拔消息,若不点名刷新时间距离,则私下认可只突显一次总括消息。

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

分选表达:

  -f:统计自开机起fork的次数。蕴涵fork、clone、vfork的次数。但不包涵exec次数。
  -d:彰显磁盘总括音讯。
  delay:刷新时间距离,若不点名,则只计算贰次音信就淡出vmstat。
  count:总共要总括的次数。
譬如说,只计算一遍音信。

[root@xuexi ~]# 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新闻。总括新闻的结果很轻易看懂,所以略过。

##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:总总计次数
例如:

[root@xuexi ~]# 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请求为3个transfer,但多少个逻辑请求也许只组成二个transfer
Blk_read/s:每秒读取的block数量
Blk_wrtn/s:每秒写入的block总量
Blk_read:读取的总block数量
Blk_wrtn:写入的总block数量

sar命令
sar是3个不胜强劲的属性分析工具,它能够取得系统的cpu/等待队列/磁盘IO/内存/互联网等质量目的。

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

sar [options] [-o filename] [delay [count] ]
慎选表明:
-A:呈现系统具有能源运营情况
-b:呈现磁盘IO和tranfer速率新闻,和iostat的音信1致,是壹体化IO计算消息
-d:呈现磁盘在刷新时间距离内的龙精虎猛状态,能够钦赐一个或多个设备,和-b分化的是,它显得的是单设备的IO、transfer音信。
      建议合营-p使用显示本人的配备名,否则暗许展现带程序设备号的器械名
-P:突显内定的某颗或某几颗cpu的施用意况。钦命格局为,-P 0,一,二,三或ALL。
-u:展现每颗cpu全部平均利用状态。-u和-P的不相同通过上面的言传身教很轻巧区分。
-r:彰显内设有刷新时间间隔内的运用情状
-n:显示网络运市场价格况。后可接DEV/NFS/NFSD/FULL等几种参数。
:DEV代表展现网路接口音讯,NFS和NFSD分别表示展现NFS客户端服务端的流量消息,FULL表示呈现全部音信。
-q:显示等待队列大小
-o filename:将结果存入到文件中
delay:状态刷新时间距离
count:总共刷新四回

拾.伍.一 计算cpu使用境况
[root@server2 ~]# 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,一,2,三共四颗)每秒的气象消息,每秒还进行了二次集中,即all,最终还对每颗cpu和汇总all统计了平均值。而笔者辈真正需求关心的是最终的average部分的idle值,idle越小,表明cpu处于空闲时间越少,该颗或全体cpu使用率就越高。

要么直接对完全实行总计。如下:

[root@server2 ~]# 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

十.伍.贰 总括内部存款和储蓄器使用状态

里头kbdirty表示内部存款和储蓄器中脏页的尺寸,即内存中还有稍稍应该刷新到磁盘的多寡。

十.伍.三 总结互联网流量
第三种艺术是翻开/proc/net/dev文件。

 

珍爱入微列:receive和transmit分别表示收包和发包,关心每一种网卡的bytes就可以获取网卡的景况。写一个剧本总括每秒的差值即为互连网流量。

要么采取sar -n命令总结网卡接口的多少。

[root@server2 ~]# 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:每秒收到的多播包数量

翻看队列景况
[root@server2 ~]# 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四分钟内系统的平分哎
blocked:当前因为IO等待被堵塞的职务数量

总计磁盘IO情况
[root@server2 ~]# 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
个别计算的是1贰:5三:0陆到1二:5三:07和1贰:5三:0柒到1二:五三:08那两秒的IO使用状态。

各列的意思如下:

tps:transfer per
second,每秒的transfer速率,2回物理IO请求算1次transfer,但往往逻辑IO请求只怕构成起来才算叁遍transfer。
rd_sec/s:每秒读取的扇区数,扇区大小为51二字节。
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 七上出示格式不太一致。

free [options]
选取表明:
-h:人类可读情势显式单位
-m:以MB为显示单位
-w:将buffers和cache分开单独彰显。只对CentOS 七上有效
-s:动态查看内部存款和储蓄器消息时的刷新时间间隔
-c:一共要刷新多少次退出free
以下以CentOS 七上的free结果评释各列的意思。

[root@server2 ~]# 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分开展现。

[root@server2 ~]# free -w -m
total used free shared buffers cache available
Mem: 1824 131 1286 8 0 406 1511
Swap: 1999 0 1999
还是能够动态计算内部存款和储蓄器新闻,举例每秒总结三回,总括三次。

[root@server2 ~]# 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结果。

[root@xuexi ~]# 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
七上的available列。

诚如的话,内存可用量的限定低于十分之二应该要引起注意了。

 

摘抄自longshuai:http://www.cnblogs.com/f-ck-need-u/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图