vmstat之背景介绍

上一篇 / 下一篇  2011-06-23 18:04:32 / 个人分类:Performance Testing

vmstat:Virtual Memory Statistics
    Linux的虚拟内存是一个十分复杂的子系统,它实现了进程间代码与数据共享机制的透明性,并能够分配比系统现有物理内存更多的内存,某些操作系统的虚存甚至能通过提供缓存功能影响到文件系统的性能。
各种风格的Linux的虚存的实现方式区别很大,但都离不开下面的4个概念:
1> 实际内存
实际内存是指一个系统中实际存在的物理内存,称为RAM。实际内存是存储临时数据最快最有效的方式,因此必须尽可能地分配给应用程序,现在的RAM的形式有多种:SIMM、DIMM、Rambus、DDR等,很多RAM都可以使用纠错机制(ECC)。
2> 交换空间
交换空间是专门用于临时存储内存的一块磁盘空间,通常在页面调度和交换进程数据时使用,通常推荐交换空间的大小应该是物理内存的二到四倍。
3> 页面调度
页面调度是指从磁盘向内存传输数据,以及相反的过程。这个过程之所以被称为页面调度,是因为Linux内存被平均划分成大小相等的页面,通常页面大小为4KB和8KB(在Solaris中可以用pagesize命令查看)。当可执行程序开始运行时,它的映象会一页一页地从磁盘中换入,与此类似,当某些内存在一段时间内空闲,就可以把它们换出到交换空间中,这样就可以把空闲的RAM交给其他需要它的程序使用。
4> 交换
交换通常容易和页面调度的概念混淆,页面调度是指把一个进程所占内存的空闲部分传输到磁盘上,而交换是指当系统中实际的内存已不够满足新的分配需求时,把整个进程传输到磁盘上,交换活动通常意味着内存不足。
当内存严重不足时,系统会频繁使用调页和交换,这增加了磁盘I/O的负载,进一步降低了系统对作业的执行速度,即系统I/O资源问题又会影响到内存资源的分配。
   
    为了提高磁盘存取效率, Linux采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了I/O系统调用(比如read,write,getdents)的时间。
swpd/buff/cache的区别
>. swpd: 系统使用的虚拟内存数量(也就是使用交换分区的数量)。
>. buff:系统中用于buff的物理内存数量,buff也是cache的一种,它与cache的区别在于buff是系统与磁盘在用块为单位进行数据交互时使用,而cache是系统与磁盘在用整页为单位进行数据交互时使用。
>. cache:系统中用于cache的内存数量。

TAG:

 

评分:0

我来说两句

Open Toolbar