Disabling disk cache in linux

本小妞迷上赌 提交于 2019-11-30 16:25:26

You need root access to do this. You can run hdparm -W 0 /dev/sda command to disable write caching, where you have to replace /dev/sda with device for your drive:

#include <stdlib.h>
...
system("hdparm -W 0 /dev/sda1");

You can also selectively disable write caching to individual partitions like this: hdparm -W 0 /dev/sda1.

To reenable caching again just use the -W 1 argument.

man hdparm, man system

echo 100 > /proc/sys/vm/dirty_expire_centisecs

echo 100 > /proc/sys/vm/dirty_writeback_centisecs

this reduce to 1 second the flush from the RAM to disk

you can test with 0

or :

echo 1 > /proc/sys/vm/drop_caches

to flush all RAM to disk

Aaron Digulla

I think you need to tell your teacher that it's no longer 1984. Modern computer systems have dozens of caches and there is no good way to disable them all:

  • Cache on the hard disk itself
  • Caches in the I/O hardware subsystem
  • Caches in the virtual file system
  • Several levels of caches in the CPU

So the question is what you want to test and which caches you want to disable for this.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!