Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1106854
  • 博文数量: 122
  • 博客积分: 340
  • 博客等级: 一等列兵
  • 技术积分: 2966
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-01 11:50
个人简介

说点什么呢

文章分类

全部博文(122)

文章存档

2018年(2)

2017年(1)

2015年(2)

2014年(30)

2013年(81)

2011年(5)

2009年(1)

分类: LINUX

2013-12-31 13:16:03

vmstat命令

(整理时间:2012-09-17)

1. 命令作用:报告虚拟内存统计信息(Report virtual memory statistics

2. 命令格式:
 vmstat [选项,-a S] [延时:delay [数量: count]]

3. 选项:

-: 活动和非活动内存显示开关(不带这个选项,不显示活动和非活动内存情况);

-f: 显示从系统启动到当前运行过多少个进程数的开关。它包括使用forkvfork、系统克隆的调用等等产生的进程。

-m: 显示slab 内存分配器的信息开关

-n:只在开始时显示一次各字段名称。否则,会在连续显示满一屏信息时重复显示各字段名称。

-s: 内存统计信息和事件记录器列表的显示开关。如果使用这个选项,则会系统内存的详细信息列表显示出来。

-d: 显示磁盘的相关统计信息

-w: 以大宽度格式显示字段信息,以便于查看大内存系统;

-p:显示分区名和详细的统计信息;

-S:指定以MK为单位进行显示;

4. 各输出字段的含义

r: 处在运行队列等待运行的进程数

b: 一直处于睡眠状态的进程数

swpd: 已经使用的虚拟内存(即交换分区)的数量;

free: 空闲的内存数量;

buff: 以缓冲(buffer)形式使用的内存数量;

cache: 以缓存(cache)形式使用的内存数量;

inact:非活内存数量;

active活动内存数量;

si: 从磁盘从换进内存的内存数量;

so: 换出到磁盘上内存数量;

bi: 从块设备接收到数据块的数量;

bo: 发送到块设备的数据块数量;

   in: 每秒钟系统中断的数量,包括时钟中断;

   cs: 每秒中系统上下文交换的数量;

   us: 运行非内核代码的时间(也就是用户进程的总花费时间)

   sy: 运行内核代码的时间(系统所占用的时间);

   id: CPU空闲时间;

   wa: 等待IO的时间;

   st: 因为运行虚拟主机而损失的时间

   total: 成功完成读/写的总数,单位可以是Kk M,m 

   merged: 表示系统通过调度算法合并数据读写操作以后,共完成多少次读/写操作;

   sectors:成功完成读/写扇区数;

   ms: 用在块设备上读/写的毫秒数;

   cur: 正在进行的I/O操作的进程数;

   s: 表示花在I/O操作上的时间(秒)数;

5. 内存的状态

linux系统中,linux内存有以下几种状态:

Free: 即空闲状态,在这个状态下的内存是没有被分配或使用,所以如果有系统或

应用程序,可以立即分配给对应程序使用;

Active表示已经分配并且被系统或应用正在使用的内存,这部分内存表示系统或

应用真正正在使用的内存;

   Inactive Dirty:即非活动“脏”内存。它表示已经被系统分配给某个应用或系统使

用的,但是对应的应用或系统没有使用它。在这个状态下的内存不会被重新分

配使用。在系统中有专门的进程会对已经分配的内存进行周期性检查,如果某一个内存页自这个进程上次检查以来没有被系统或应用读写,那么该进程就把该内存页的生命期的计数器减一,反之会加一。如果这个计数器减到了零,则就把对应的内存状态修改为Inactive Dirty状态。

Inactive Laundered: 这是一个临时状态。当内存页进入到Inactive Dirty状态后,

系统将把内存页里对应的内容更新到磁盘上去。一旦I/O完成后,对应的内存页的状态将进入下一个状态。

Inactive Clean: 内存页从Inactive Laundered状态完成I/O操作后,就进入这个

状态。在这个状态下的内存页表示其上的数据已经更新到磁盘上了,对应的内存可以重新分配了。

6. Linux内存机制

下图展示了Linux系统内存各个状态的机制:

内存状态机制

7. 内存缓冲(buffer)和缓存(cache)

缓冲:是指在两个速度不同的进程之间进行数据通信时,高缓进程一般会将数据临

时存放在内存的某一块区域,以便低速的进程进行处理。例如:当系统向磁盘写数据时,系统会将数据存放在缓冲区内,以便I/O进程处理。缓冲大部分是应用在与I/O相关的操作上,如磁盘写操作,网卡的读写等等。

缓存:而缓存则是表示,系统将那些使用率比较高的数据,临时存放在内存的某一

区域内,以便系统将来重新使用时不需要从相对低速的外围设备,如磁盘上进行读取,而只需要从缓存上读取。这样,可以提高系统的性能。

8. 与虚拟内存相关的内核参数(CentOS 5.5

vm.max_reclaims_in_progress = 0

vm.max_writeback_pages = 1024

vm.flush_mmap_pages = 1

vm.pagecache = 100

vm.vdso_enabled = 1

vm.swap_token_timeout = 300

vm.topdown_allocate_fast = 0

vm.legacy_va_layout = 0

vm.vfs_cache_pressure = 100

vm.block_dump = 0

vm.laptop_mode = 0

vm.max_map_count = 65536

vm.percpu_pagelist_fraction = 0

vm.min_free_kbytes = 3453

vm.drop_caches = 0

vm.lowmem_reserve_ratio = 256   256     32

vm.swappiness = 60

vm.nr_pdflush_threads = 2

vm.dirty_expire_centisecs = 3000

vm.dirty_writeback_centisecs = 500

vm.mmap_min_addr = 4096

vm.dirty_ratio = 40

vm.dirty_background_ratio = 10

vm.page-cluster = 3

vm.overcommit_ratio = 50

vm.panic_on_oom = 0

vm.overcommit_memory = 0

阅读(1203) | 评论(0) | 转发(0) |
0

上一篇:Shell 编程语法

下一篇:vsftp虚拟用户配置

给主人留下些什么吧!~~