zoukankan      html  css  js  c++  java
  • Linux vmstat

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

    Procs

           r: The number of processes waiting for run time.

     

           等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。

           b: The number of processes in uninterruptible sleep.

     

     

           处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等

     

     

    Memory

           swpd: the amount of virtual memory used.

     

           已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,siso的值长期为0,这也是没有问题的

          

           free: the amount of idle memory.

     

           空闲的物理内存的大小

           buff: the amount of memory used as buffers.

     

           用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB

           cache: the amount of memory used as cache.

     

           用来做cache(缓存,主要用于缓存文件)的内存,单位:KB

           inact: the amount of inactive memory. (-a option)

     

           inactive memory的总量

           active: the amount of active memory. (-a option)

     

     

           active memroy的总量。

     

     

    Swap

           si: Amount of memory swapped in from disk (/s).

     

            从磁盘交换到内存的交换页数量,单位:KB/秒。

     

           so: Amount of memory swapped to disk (/s).

            从内存交换到磁盘的交换页数量,单位:KB/

     

            内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IOCPU资源都会被消耗。

       当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合siso

        如果free很少,但是siso也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

     

           当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,

       这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,

       但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

     

    IO

           bi: Blocks received from a block device (blocks/s).

     

            每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。

     

           bo: Blocks sent to a block device (blocks/s).

     

            每秒发送到块设备的块数,单位:块/  也就是写块设备。

     

    System

           in: The number of interrupts per second, including the clock.

     

            每秒的中断数,包括时钟中断

     

           cs: The number of context switches per second. 

            每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。

     

    CPU

           These are percentages of total CPU time.

     

           us: Time spent running non-kernel code. (user time, including nice time)

     

            用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多

     

           sy: Time spent running kernel code. (system time)

     

             系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

     

           id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

     

            空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。

     

           wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.

     

            等待IOCPU时间,在Linux 2.5.41之前,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

     

        st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

     

     

    vmstat 1 10

    Procs

           r: The number of processes waiting for run time.

     

           等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。

           b: The number of processes in uninterruptible sleep.

     

     

           处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等

     

     

    Memory

           swpd: the amount of virtual memory used.

     

           已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,siso的值长期为0,这也是没有问题的

          

           free: the amount of idle memory.

     

           空闲的物理内存的大小

           buff: the amount of memory used as buffers.

     

           用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB

           cache: the amount of memory used as cache.

     

           用来做cache(缓存,主要用于缓存文件)的内存,单位:KB

           inact: the amount of inactive memory. (-a option)

     

           inactive memory的总量

           active: the amount of active memory. (-a option)

     

     

           active memroy的总量。

     

     

    Swap

           si: Amount of memory swapped in from disk (/s).

     

            从磁盘交换到内存的交换页数量,单位:KB/秒。

     

           so: Amount of memory swapped to disk (/s).

            从内存交换到磁盘的交换页数量,单位:KB/

     

            内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IOCPU资源都会被消耗。

       当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合siso

        如果free很少,但是siso也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

     

           当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,

       这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,

       但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

     

    IO

           bi: Blocks received from a block device (blocks/s).

     

            每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。

     

           bo: Blocks sent to a block device (blocks/s).

     

            每秒发送到块设备的块数,单位:块/  也就是写块设备。

     

    System

           in: The number of interrupts per second, including the clock.

     

            每秒的中断数,包括时钟中断

     

           cs: The number of context switches per second. 

            每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。

     

    CPU

           These are percentages of total CPU time.

     

           us: Time spent running non-kernel code. (user time, including nice time)

     

            用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多

     

           sy: Time spent running kernel code. (system time)

     

             系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

     

           id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

     

            空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。

     

           wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.

     

            等待IOCPU时间,在Linux 2.5.41之前,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

     

        st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

     

     

  • 相关阅读:
    几种常见的软件体系结构及特点分析
    mvc模式
    代理模式 补充
    软件架构体系风格
    大道至简之编程的精义读后感-Java伪代码
    MVC架构模式实例
    浅谈模型-视图-控制器模式
    《大型网站技术架构:核心原理与案例分析》读后感
    质量属性分析
    构架漫谈读后感之软件架构师的工作
  • 原文地址:https://www.cnblogs.com/zhangeamon/p/9360154.html
Copyright © 2011-2022 走看看