0

每个slab类至少有一个页面,当没有可用的内存分配时,它将驱逐“tails”列表中的项目。那么为什么它会运行到 MEMCACHED_MEMORY_ALLOCATION_FAILURE 状态呢?

4

2 回答 2

0

我认为这是一个 libmemcached 状态,而不是一个 memcached 状态。在任何情况下,当应用程序从底层分配器(malloc)请求内存并且 malloc 不返回堆内存时,都会发生这种情况。由于无法完成内存请求,您可能会收到这样的错误,因为应用程序将无法继续处理您的请求。

于 2012-06-14T18:20:13.437 回答
0

当客户端调用 libmemcached.libmemcached 抛出异常时会出现此错误,包括以下几种情况:

1 realloc、malloc、calloc

2 查看源代码段如下:

...
new_size= sizeof(char) * (size_t)((adjust * MEMCACHED_BLOCK_SIZE) + string->current_size);
if (new_size < need)
  return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
...

完全不可能发生

于 2016-04-21T08:38:55.477 回答