在课堂项目中,我的老师告诉我们进行一些代码评估(C语言),为此我们需要在测试期间禁用磁盘缓存。
目前我正在使用Ubuntu 12.04,我该怎么做?
感谢。
答案 0 :(得分:12)
您需要root权限才能执行此操作。您可以运行hdparm -W 0 /dev/sda
命令来禁用写入缓存,您必须将/dev/sda
替换为驱动器的设备:
#include <stdlib.h>
...
system("hdparm -W 0 /dev/sda1");
您还可以选择性地禁用对各个分区的写入缓存,如下所示:hdparm -W 0 /dev/sda1
。
要重新启用缓存,只需使用-W 1
参数。
答案 1 :(得分:5)
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刷新到磁盘
答案 2 :(得分:2)
我认为你需要告诉你的老师它不再是1984年。现代计算机系统有几十个缓存,没有好办法让它们全部禁用:
所以问题是你想要测试什么以及你想为此禁用哪些缓存。