斑竹网络专注为中小企业客户提供以管理服务为核心的IT全方位服务 https://www.sysadm.cn
分类: LINUX
2013-12-31 13:16:03
vmstat命令
(整理时间:2012-09-17)
1. 命令作用:报告虚拟内存统计信息(Report virtual memory statistics)
2. 命令格式:
vmstat [选项,-a –n –S] [延时:delay [数量: count]]
3. 选项:
-a : 活动和非活动内存显示开关(不带这个选项,不显示活动和非活动内存情况);
-f: 显示从系统启动到当前运行过多少个进程数的开关。它包括使用fork、vfork、系统克隆的调用等等产生的进程。
-m: 显示slab 内存分配器的信息开关
-n:只在开始时显示一次各字段名称。否则,会在连续显示满一屏信息时重复显示各字段名称。
-s: 内存统计信息和事件记录器列表的显示开关。如果使用这个选项,则会系统内存的详细信息列表显示出来。
-d: 显示磁盘的相关统计信息
-w: 以大宽度格式显示字段信息,以便于查看大内存系统;
-p:显示分区名和详细的统计信息;
-S:指定以M或K为单位进行显示;
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: 成功完成读/写的总数,单位可以是K,k 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系统内存各个状态的机制:
图1 内存状态机制
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