我的一个进程显然是因为日志文件中的以下消息而一遍又一遍地重新启动:
Wed Jun 13 10:07:32 2012: terminate called after throwing an instance of 'std::bad_alloc'
Wed Jun 13 10:07:32 2012: what(): St9bad_alloc
我知道这是因为它无法为“新”请求分配内存。我不明白的是'free -m'告诉我有很多可用内存可以丢弃缓存:
-bash-3.00$ 免费 -m
total used free shared buffers cached
Mem: 32175 32113 61 0 412 24021
-/+ buffers/cache: 7679 24495
Swap: 12287 0 12287
是否因为可用内存(具有当前缓存)非常少而导致内存不足,但我猜想为了迎合“新”请求,可以释放此缓存。或者我是否需要打开某些东西来强制释放缓存或者这里出了什么问题?