简单地说,虚拟内存就是硬盘中的一块区域,它用来存放内存里使用频率不高的页面文件。好处是为了提高内存的利用率 - 让使用频率高的页面文件活动在内存区域中,提高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时:
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?? 6340??? 0??? 0??? 10?? 666 1195 3904? 0? 3 70 27? 0
0? 0????? 0?? 1276???? 16?? 6340??? 0??? 0???? 7??? 10 1031 3955? 0? 2 98? 0? 0
0? 0????? 0?? 1276???? 16?? 6340??? 0??? 0??? 15???? 9 1031 3902? 0? 5 95? 0? 0
2? 2????? 0?? 1275???? 16?? 6341??? 0??? 0???? 7? 1420 1275 3930? 0? 2 67 32? 0
0? 0????? 0?? 1275???? 16?? 6341??? 0??? 0???? 6?? 290 1125 3939? 0? 1 89 10? 0
0? 0????? 0?? 1275???? 16?? 6341??? 0??? 0??? 11??? 18 1029 3975? 0? 2 98? 0? 0
0? 0????? 0?? 1275???? 16?? 6341??? 0??? 0??? 26??? 22 1037 3984? 0? 1 98? 1? 0
0? 0????? 0?? 1275???? 16?? 6341??? 0??? 0???? 5??? 18 1027 3892? 0? 2 97? 0? 0
0? 0????? 0?? 1275???? 16?? 6341??? 0??? 0???? 6??? 10 1029 3878? 0? 1 98? 0? 0
0? 2????? 0?? 1275???? 16?? 6341??? 0??? 0???? 6? 1106 1191 3935? 0? 1 81 18? 0
1? 2????? 0?? 1275???? 16?? 6341??? 0??? 0??? 18? 1121 1245 3870? 0? 1 61 38? 0
0? 0????? 0?? 1275???? 16?? 6341??? 0??? 0??? 14?? 121 1086 3924? 0? 2 94? 4? 0
0? 2????? 0?? 1274???? 16?? 6341??? 0??? 0??? 12? 1264 1245 3925? 0? 1 73 25? 0
1? 0????? 0?? 1274???? 16?? 6342??? 0??? 0???? 8?? 777 1208 3897? 0? 4 74 22? 0
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r? b?? swpd?? free?? buff? cache?? si?? so??? bi??? bo?? in?? cs us sy id wa st
0? 0????? 0?? 1274???? 16?? 6342??? 0??? 0???? 8?? 267 1076 3870? 0? 5 95? 0? 0
0? 0????? 0?? 1274???? 16?? 6342??? 0??? 0???? 6?? 391 1089 3856? 0? 2 98? 0? 0
0? 0????? 0?? 1274???? 16?? 6342??? 0??? 0??? 10???? 0 1033 3893? 0? 1 98? 0? 0
2? 0????? 0?? 1274???? 16?? 6342??? 0??? 0???? 5???? 0 1026 3904? 0? 2 98? 0? 0
0? 2????? 0?? 1274???? 16?? 6342??? 0??? 0???? 5? 1016 1193 3907? 0? 2 82 16? 0
0? 0????? 0?? 1274???? 16?? 6342??? 0??? 0???? 4?? 203 1092 3895? 0? 3 90
关键词标签:Linux性能调优,虚拟内
相关阅读
热门文章
安装红帽子RedHat Linux9.0操作系统教程
Tomcat9.0如何安装_Tomcat9.0环境变量配置方法
多种操作系统NTP客户端配置
Linux操作系统修改IP
人气排行 Linux下获取CPUID、硬盘序列号与MAC地址 dmidecode命令查看内存型号 linux tc实现ip流量限制 安装红帽子RedHat Linux9.0操作系统教程 linux下解压rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 关机、重启、注销 命令 查看linux服务器硬盘IO读写负载
查看所有0条评论>>