2

我目前正在做一个项目,我需要测试它的性能。因此,我正在开发一个 C 客户端,它反复访问文件中的随机磁盘页面。该客户端针对 Linux Debian OS(64 位),操作如下:

一开始,它分配一个动态的内存结构,该结构保存它将访问的页面的信息。然后,在若干轮中,它从文件中获取每一页的数据。

为了监控底层文件系统性能,我想强制客户端用新页面替换 RAM 内容,而不是通过缓存提高其性能。所以,我让它使用它的大部分 RAM(它有 512MB 的主内存,我强迫它使用 ~ 300MB)。事实是我不监控性能下降。

是否有另一种方法可以强制替换主内存中的内存页面,以便我可以监控客户端调用中的 IO 延迟?

4

1 回答 1

3

您可以通过执行以下操作(以 root 身份)刷新内存缓存:

   sync
   echo 3 > /proc/sys/vm/drop_caches

接受的各种 drop_caches是:

To free pagecache:
    echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
    echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
    echo 3 > /proc/sys/vm/drop_caches

你需要 3 才能放下所有东西。

于 2013-06-10T10:24:21.793 回答