刷新Memcached有数据被踢,evictions大于0时候的分析

今天刷新缓存的时候突然报了个错:

[UP_ITEM_RELAT]  quantity of loaded records Checking ... ...
         [PASS] should loaded:3872247, actually loaded:3872247 Checking Consumed 3383ms.
[BROADBAND_PRICE_INFO]  quantity of loaded records Checking ... ...
         [PASS] should loaded:360, actually loaded:360 Checking Consumed 1630ms.
Exception in thread "Main Thread" java.lang.Exception: evictions Check Error, the stats 'evictions' information is greater than 0
        at com.ai.pce.load.LoadCheck.main(LoadCheck.java:124)

telnet 这个服务端口 后stats发现evictions 这一项的数值是228452。

STAT rusage_user 64.704043
STAT rusage_system 146.117131
STAT curr_items 4154023
STAT total_items 4382475
STAT bytes 4304815186
STAT curr_connections 6
STAT total_connections 248
STAT connection_structures 74
STAT cmd_flush 0
STAT cmd_get 78
STAT cmd_set 4382475
STAT get_hits 0
STAT get_misses 78
STAT evictions 228452
STAT bytes_read 4249247477
STAT bytes_written 35061395
STAT limit_maxbytes 5033164800
STAT threads 5
STAT accepting_conns 1
STAT listen_disabled_num 0

之后看了下jar包,当这个数值大于零的时候就会抛出这个错,说明有老的数据因为分配的内存不足而被踢掉了。

String evictions = (String)stat.get("evictions");
    if ((!StringUtils.isBlank(evictions)) && (StringUtils.isNumeric(evictions))) {
      long levictions = Long.parseLong(evictions);
      if (levictions > 0L)
        throw new Exception("evictions Check Error, the stats 'evictions' information is greater than 0");
    }
    else
    {
      throw new Exception("evictions Check Error, the stats 'evictions' information is null or not numerical");
    }

 

试着改了memcached的配置数据,调整了如下数值后,重新刷新缓存,依然失败。

server.max_byte_size=5242880
#server.max_byte_size=10242880

#server.compress_threshold=1048576
server.compress_threshold=548576

 

再接着改了下启动参数。将原来的4800 调整到了6800。重新刷新缓存就好了。

../memcached/bin/memcached -m 6800 -p $PORT -d -t 4 -c 2000

 

最总分析就是预先分配的内存不足导致的。

 

在网上看到了这个日志,分享给大家作为参考:

http://timyang.net/data/memcached-lru-evictions/

转载于:https://www.cnblogs.com/kevin-boy/archive/2013/01/08/2850898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值