Leveldb 极限测试——限制一个程序使用的内存

Leveldb limit testing - limit Memory used by a program

我目前正在对基于 Leveldb 构建的应用程序进行基准测试。我想以这样一种方式配置它,即键值总是从磁盘而不是从内存中读取。
为此,我需要限制程序消耗的内存。
我正在使用每个 100 字节的键值对和 100000 个,这使得它们的大小等于 10 MB。如果我使用 ulimit 将虚拟内存限制设置为小于 10 MB,我什至无法 运行 命令 Makefile

1) 如何配置应用程序以便始终从磁盘中获取键值对?

2) ulimit -v 是什么意思?限制虚拟内存是否转化为限制程序在 RAM 上使用的内存?

也许没有必要减少可用内存,只需按照描述禁用缓存即可 here:

  leveldb::ReadOptions options;
  options.fill_cache = false;
  leveldb::Iterator* it = db->NewIterator(options);
  for (it->SeekToFirst(); it->Valid(); it->Next()) {
    ...
  }