我有一个两个服务器的memcached设置。 当memcached写入失败时,我收到一封电子邮件通知。 大约每天一次“服务器失败并被禁用,直到重试”错误来了,我不知道如何find原因。
我正在使用PHP Memcached客户端。
我没有使用太长的键。 我试着添加-v标志,但是没有帮助,日志仍然是空的。
如果将getStats的输出包括到错误通知中,我会收到以下信息:
Array ( [192.168.0.3:11211] => Array ( [pid] => 28167 [uptime] => 3671962 [threads] => 4 [time] => 1358714713 [pointer_size] => 64 [rusage_user_seconds] => 24516 [rusage_user_microseconds] => 130981 [rusage_system_seconds] => 86246 [rusage_system_microseconds] => 675512 [curr_items] => 1616352 [total_items] => 118339822 [limit_maxbytes] => 2684354560 [curr_connections] => 8 [total_connections] => 78108681 [connection_structures] => 356 [bytes] => 981522779 [cmd_get] => 1561752945 [cmd_set] => 158718324 [get_hits] => 1383072575 [get_misses] => 178680370 [evictions] => 0 [bytes_read] => 138113231690 [bytes_written] => 1091741700765 [version] => 1.4.15 ) [192.168.0.4:11211] => Array ( [pid] => -1 [uptime] => 0 [threads] => 0 [time] => 0 [pointer_size] => 0 [rusage_user_seconds] => 0 [rusage_user_microseconds] => 0 [rusage_system_seconds] => 0 [rusage_system_microseconds] => 0 [curr_items] => 0 [total_items] => 0 [limit_maxbytes] => 0 [curr_connections] => 0 [total_connections] => 0 [connection_structures] => 0 [bytes] => 0 [cmd_get] => 0 [cmd_set] => 0 [get_hits] => 0 [get_misses] => 0 [evictions] => 0 [bytes_read] => 0 [bytes_written] => 0 [version] => ) )
MEMCACHED_SERVER_TEMPORARILY_DISABLED或“ 服务器失败 并被禁止 ,直到重试定时 ”由libmemcached库生成。 我无法确认pecl_memcached如何处理这个错误,但我想它会被视为一个标准的连接错误。 当连接超出超时和/或重试限制时,将发出此消息。 (请参阅I / O选项 )
当然,由于这是一个暂时的问题,因此您可以将您的PHP应用程序构build到下一个caching服务器,或者将受影响的服务器从服务器列表中提取出来。
我的情况是,我在我的代码中将localhost更改为“127.0.0.1”。 和我能够解决错误“服务器失败,直到时间重试被禁用”
希望有所帮助
'options' => array( 'servers' => array('127.0.0.1', 11211),
在我的情况下,这个错误消息的原因是一个不正确的服务器名称。
不知怎的,准备configurationstring以供使用的代码已经搞乱了,空格字符在其中一个memcache服务器名称的前面。 从服务器读取时,会导致上述错误消息。
我正在使用PHP和Memcached扩展。 添加服务器名称的空间没有任何投诉,即没有内部validation他们。 只有在连接到服务器时才被检查。
在我的情况下closures行为选项tcp_nodelay使其工作。
这似乎是pylibmc一个选项,它是一个围绕libmemcached的python包装,但是文档说这个选项属于可直接在libmemcachedconfiguration的选项。
欲了解更多信息,请参阅pylibmc文档http://sendapatch.se/projects/pylibmc/behaviors.html