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日