Ich habe ein Zwei-Server-Memcached-Setup. Wenn das Memcached-Schreiben fehlschlägt, erhalte ich eine E-Mail-Benachrichtigung. Ungefähr einmal pro Tag tritt der Fehler "Server ist ausgefallen und wird bis zur zeitgesteuerten Wiederholung deaktiviert" auf, und ich habe keine Ahnung, wie ich den Grund finden kann.
Ich verwende den PHP Memcached Client.
Ich benutze keine zu langen Schlüssel. Ich habe versucht, das Flag -v hinzuzufügen, aber es hilft nicht, das Protokoll bleibt leer.
Wenn ich die Ausgabe von getStats in die Fehlerbenachrichtigung einbeziehe, erhalte ich die folgenden Informationen:
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] =>
)
)
In meinem Fall hat das Deaktivieren der Verhaltensoption
tcp_nodelay
funktioniert.Dies scheint eine Option von zu sein
pylibmc
, die ein Python-Wrapper um das istlibmemcached
, aber die Dokumentation sagt, dass diese Option zu denjenigen gehört, die direkt in konfiguriert werden könnenlibmemcached
.Weitere Informationen finden Sie in den
pylibmc
Dokumenten unter http://sendapatch.se/projects/pylibmc/behaviors.htmlquelle
In meinem Fall habe ich localhost in meinem Code in '127.0.0.1' geändert. und ich bin in der Lage, den Fehler "Server ist ausgefallen und wird deaktiviert, bis die zeitgesteuerte Wiederholung" zu beheben.
hoffe das hat geholfen
quelle
In meinem Fall war der Grund für diese Fehlermeldung ein falscher Servername.
Irgendwie war der Code, der die Konfigurationszeichenfolge für die Verwendung vorbereitete, durcheinander und ein Leerzeichen stand vor einem der Memcache-Servernamen. Dies führt zu der oben genannten Fehlermeldung beim Lesen vom Server.
Ich verwende PHP und die Memcached-Erweiterung. Das Hinzufügen des Servernamens mit dem Speicherplatz funktionierte ohne Beanstandung, dh es gibt keine interne Validierung für sie. Sie werden nur zu dem Zeitpunkt überprüft, zu dem eine Verbindung zum Server hergestellt werden muss.
quelle