小编ewo*_*ock的帖子

mmap 返回无法分配内存,即使有足够的内存

我正在使用 leveldb 进行压力测试。

util/env_poisx.cc : NewRandomAccessFile()

void* base = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0);
Run Code Online (Sandbox Code Playgroud)

插入 300 万条数据(每条 100k)后。错误号说Cannot allocate memory

为什么?

更多细节:

顶部:

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                         
19794 root      20   0  290g 4.9g 4.7g S 98.6  7.8   2348:00 ldb
Run Code Online (Sandbox Code Playgroud)

自由-m:

             total       used       free     shared    buffers     cached

Mem:         64350      60623       3726          0        179      59353

-/+ buffers/cache:       1090      63259

Swap:          996          0        996
Run Code Online (Sandbox Code Playgroud)

ulimit -a:

core file size          (blocks, -c) …
Run Code Online (Sandbox Code Playgroud)

c linux memory-management mmap leveldb

5
推荐指数
1
解决办法
5107
查看次数

标签 统计

c ×1

leveldb ×1

linux ×1

memory-management ×1

mmap ×1