起步于系统工程师,迈进入测试工程师,从起初的C/S系统到互联网时代的B/S系统,从事过电信增值业务、软交换、烟草OA、公安技侦和电子商务等行业的软件测试开发和管理多年,愿与大家共同分享共同交流,关注软件项目管理、测试团队管理、软件流程控制和软件性能测试及自动化测试技术。互联网时代,技术推动进步,欢迎人才推荐:jonas.wangl@alibaba-inc.com
【linux】page cache 和VM Perl 线程和C++性能优化
上一篇 /
下一篇 2010-03-24 11:35:27
/ 个人分类:Linux/unix
*Sa@2R#I,PC0调节Page Cache51Testing软件测试网%h(Tc!a%O)ReV2`D.Y
51Testing软件测试网:~.l:r/E&QAO在Linux的内核中,对文件的读写提供一个页面缓冲的机制(Page Cache)。Page Cache存在于内存中,当要读取一个磁盘文件的内容时,内核首先在Page Cache中进行查找,如果要读取的内容已经存在Page Cache中,则无需在对磁盘发起实际的读操作。同样在需要写文件时,写操作也只是将内容存放于Page Cache中,而Page Cache中的更改内容由内核进程pdflush周期性的写回磁盘。在默认情况下,pdflush进程每5秒钟醒来一次,进行数据写回操作。这个写回时间值定义在参数/proc/sys/vm/dirty_writeback_centisecs中。如果在这5秒钟之间,发生电源故障或者系统崩溃,可能会引起数据丢失。如果用户的电源供应比较可靠,或者丢数据丢失的风险不是非常在意,可以适当的提高这个数据写回时间。使用如下命令查看系统当前的写回时间值:
z7nt;~7b0i(n0cat /proc/sys/vm/dirty_writeback_centisecs51Testing软件测试网v6Q2\f[q&D3c 500 "H-omUz"_:S7m0 |
51Testing软件测试网Fkv-c&i&?)~a,~
此时间值的单位为1/100秒。使用如下命令可以更改此值:51Testing软件测试网6~,nt}|C
echo 2000 > /proc/sys/vm/dirty_writeback_centisecs ;t.ux'n:J`Ry0o+~4c0 |
W;nRMZA_r*WP0这样,就可以使pdflush进程20秒才醒来一次,从而减少对磁盘的访问频率。
m)U+f'z$}&bI0还有一个参数/proc/sys/vm/dirty_expire_centisecs控制一个更改过的页面经过多长时间后被认为是过期的、必须被写回的页面,其默认值是3000(单位也是1/100秒)。用户也可以适当的增加此值,使页面更长时间的驻留在内存中。如下命令:
YKHJBB)h.N0 echo 4000 > /proc/sys/vm/dirty_expire_centisecs |