在一个课堂项目中,我的老师让我们做一些代码评估(C语言),为此我们需要在testing期间禁用磁盘caching。
目前我使用Ubuntu 12.04,我该怎么做?
谢谢。
您需要root权限才能执行此操作。 您可以运行hdparm -W 0 /dev/sda
命令来禁用写入缓存,您必须用驱动器的设备替换/dev/sda
:
#include <stdlib.h> ... system("hdparm -W 0 /dev/sda1");
您也可以有选择地禁用写入缓存到单个分区,如下所示: hdparm -W 0 /dev/sda1
。
要重新启用缓存,只需使用-W 1
参数。
男子hdparm , 人系统
echo 100 > /proc/sys/vm/dirty_expire_centisecs
echo 100 > /proc/sys/vm/dirty_writeback_centisecs
这减少了从RAM到磁盘的冲刷1秒
你可以用0来测试
要么 :
echo 1 > /proc/sys/vm/drop_caches
刷新所有的RAM到磁盘
我想你需要告诉你的老师,现在不再是1984年了。现代计算机系统有几十个缓存,没有好的方法来禁用它们:
所以问题是你想测试什么,以及你想禁用哪个缓存。