Назад | Перейти на главную страницу

Слишком большой объект Memcached

В моем memcahced конфигурация у меня есть

 PORT="11211"                                                                                                                                                                                                                              
 USER="memcached"                                                                                                                                                                                                                          
 MAXCONN="1024"                                                                                                                                                                                                                            
 MAXITEMSIZE=5M                                                                                                                                                                                                                            
 CACHESIZE="12288"                                                                                                                                                                                                                         
 LOGFILE="/var/log/memcached.log"                                                                                                                                                                                                          
 OPTIONS="-vv >> /var/log/memcached 2>&1" 

То же самое я вижу, когда запускаю stats

STAT limit_maxbytes 67108864

Но когда я пытаюсь написать большой предмет

set test 0 60 5000000 asdas
SERVER_ERROR object too large for cache

Что ж, проблема в том, как вы запустите memcached. Если вы начинаете с ssytem на основе init.d (например, Centos6), вам нужно проверить, запускает ли сценарий /etc/initd./memcached демон с параметром -I. В моем случае параметры -I не были установлены в сценарии инициализации. Так:

start () {
...
 daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c -I $MAXITEMSIZE $MAXCONN -P ${pidfile} $OPTIONS

Точно так же, если ваша система основана на systemd, например Centos7

[Service]                                                                                                                                                                                                                                 
Type=simple                                                                                                                                                                                                                               
EnvironmentFile=-/etc/sysconfig/memcached                                                                                                                                                                                                 
ExecStart=/usr/bin/memcached -u $USER -p $PORT -I $MAXITEMSIZE -m  $CACHESIZE -c $MAXCONN $OPTIONS