简单地说,虚拟内存就是硬盘中的一块区域,它用来存放内存里使用频率不高的页面文件。好处是为了提高内存的利用率 - 让使用频率高的页面文件活动在内存区域中,提高CPU对数据操作的速度。在Linux中,这个区域叫做swap,一般大小应设置为物理内存的2倍。
vm.swappiness是Linux内核的一个参数,范围是0~100。它表示实际内存和虚拟内存区域进行数据交换的倾向性大小,数值越大表示倾向性越大,即交换的页面文件越多,反之亦然。一般默认值为60。可用'cat /proc/sys/vm/swappiness’查看。
这个值应该设置成多大才能提高Linux的性能呢?这个当然要由具体的环境来定了。我在一台CentOS机器上,分别把值设为0,60,100,下面是运行'vmstat -S M 5’的三次数据报告。(vmstat命令是用来查看虚拟内存状况的,参数-S M表示以M为单位,5表示每5秒钟产生一次报告。)这里主要关注bi,bo和wa这三个值,bi代表每秒钟从硬盘读入数据的块数(因为硬盘是块设备),bo表示每秒钟写入硬盘数据的块数,wa表示CPU等待IO设备就绪的时间。
当值为0时:
来源:(http://blog.sina.com.cn/s/blog_5ce87d560100i31q.html) - [转载]Linux性能调优---虚拟内存_郭金鹏_新浪博客
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 2 0 1277 16 6340 0 0 7 3 1 1 0 2 91 6 0
2 0 0 1277 16 6340 0 0 9 778 1203 3901 0 5 78 17 0
0 1 0 1276 16 6340 0 0 4 510 1094 3855 0 1 96 2 0
0 0 0 1276 16 6340 0 0 13 294 1113 3896 0 3 89 7 0
2 0 0 1276 16 6340 0 0 12 462 1122 3954 0 2 96 2 0
0 0 0 1276 16 6340 0 0 8 6 1027 3915 0 1 98 0 0
0 2 0 1276 16 6340 0 0 19 982 1178 3894 0 2 79 19 0
0 0 0 1276 16