memcached增加内存使用量limit_maxbytes

6.81K 浏览技术资料
0

memcached启动命令如下:

/usr/local/lib/memcached -d -m 2048 -u root -c 1024 -p 11211 -P /tmp/memcached1.pid

其中,-m 2048就表示占用内存。使用LNMP或者oneinstack时,默认占用的内存比较小,修改方法是编辑:/etc/init.d/memcached,在MAXCONN=1024下方添加:CACHESIZE=512 #单位 M,默认 256M,可调整 。

PS:更新一下:

上面的没有效果,你还需要进入:/etc/memcached.conf,编辑-m这一段,将默认的数值,例如64,改成其它的,例如:512即可。

最后就是重启一下Memcached服务即可:

systemctl restart memcached
systemctl enable memcached


现在再来查看是不是内存扩大了((主要是看:STAT limit_maxbytes 2147483648 //分配给memcache的内存大小(字节)):

memcached-tool 127.0.0.1 stats

原来的启动命令如下:

start-stop-daemon --start --quiet --pidfile /var/run/memcached/memcached.$1.pid --exec $DAEMON -- -d -p $PORT -u $USER  -m $2 -c $MAXCONN -P /var/run/memcached/memcached.$1.pid $OPTIONS
  RETVAL=$?

我们改成:

start-stop-daemon --start --quiet --pidfile /var/run/memcached/memcached.$1.pid --exec $DAEMON -- -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.$1.pid $OPTIONS
  RETVAL=$?

然后:service memcached restart#重启生效

什么时候需要修改占用内存使用量呢?看limit_maxbytes、bytes

memcached在存储的时候是可以设置失效时间的,但如果存储已经满了,那旧数据即使没有到过期时间,也会被移除。所以需要观察memcached存储是否已经满了,同时这对扩容也是有意义的参考。limit_maxbytes即总的存储大小,而bytes就是已经使用的大小,从这两个数据就可以看出在memcached启动时,我们为它分配的内存是否足够使用。

如果你不确定你是否有足够的内存,你可以通过查看evictions”的值来确定Memcache实例的内存使用情况,如果还有足够的内存,那么“evictions”的值应该为0或者不再增长。

evictions:为了给新的数据项目释放空间,从缓存移除的缓存对象的数目。比如超过缓存大小时根据LRU算法移除的对象,以及过期的对象。


分享到:
Qi 更改状态以发布 2021年10月16日
添加评论
写下您的答案。

Login

Welcome! Login in to your account

Remember meLost your password?

Don't have account. Register

Lost Password

Register