При попытки засетить в мемкаш переменную получаю вот такую ошибку: Код (Text): Notice: MemcachePool::set() [memcachepool.set]: send of 32768 bytes failed with errno=11 Resource temporarily unavailable in /var/www/html/pt.system/libs/Models/cache.php on line 59 В чем может быть проблема?
А я что-то так не увидел связи между ссылкой и описаной выше проблемой Как всё-таки проблема-то лечится? Можно чуть детальнее?
Вообщем сначала прогоняешь тест описанный в ссылке. Потом смотришь на результаты. По результатам видно будет блоки какого размера (передача) быстрее обрабатываются. Такое значение и ставишь в конфиге. После проблемы не возникает.
А, ну это не решение проблемы, а её обход стороной. Фактически проблема всё равно остаётся при очень высокой нагрузке в много потоков. Описанный выше способ даёт снижение количества ошибок, но не гарантирует их отсутствие. Я полагаю, что если количество тредов memcached меньше чем количество клиентов, обращающихся в отдельно взятый момент, то в этом случае мы и получаем Resource temporarily unavailable. Ведь errno=11 - это E_AGAIN, т.е. "я занят, зайдите попозже", что в нашем случае говорит о том, что операцию set имеет смысл попробовать повторить, например, через несколько миллисекунд, либо смириться с тем, что set сделать не удалось и вообще фиг забить, сделать в другой раз. P.S. Надо на досуге RTFM по memcached, либо в сорцах покопаться: я более чем уверен, что моё предположение верно, и E_AGAIN - это "правильное" поведение memcached, а не глюк.