O que faria com que o Memcached travasse por mais de 2 segundos?

1

Estou ficando louco tentando escalar o memcached. De seu site:

Memcached operations are almost all O(1). Connecting to it and issuing a get or stat command should never lag. If connecting lags, you may be hitting the max connections limit. See ServerMaint for details on stats to monitor.

If issuing commands lags, you can have a number of tuning problems. Most common are hardware problems, not enough RAM (swapping), network problems (bandwidth, dropped packets, half-duplex connections). On rare occasion OS bugs or memcached bugs can contribute.

Bem ... certamente não está funcionando como uma operação O (1) para mim. Sob carga baixa para normal em nosso site, os tempos de resposta do memcached para operações get e set são de cerca de 0,001 segundo. Não é ruim. Mas se triplicarmos a carga, obteremos outliers que levarão 100x (ou, em casos raros, 1000x!) Por muito tempo. Eu até tive uma instância em que demorou 2.2442 segundos para o memcached armazenar um valor.

Obviamente, isso está matando nosso site.

Aqui está a saída do Memcached- > getStats durante um dos períodos mais lentos:

        [pid] => 18079
        [uptime] => 8903
        [threads] => 4
        [time] => 1332795759
        [pointer_size] => 32
        [rusage_user_seconds] => 26
        [rusage_user_microseconds] => 503872
        [rusage_system_seconds] => 125
        [rusage_system_microseconds] => 477008
        [curr_items] => 42099
        [total_items] => 422500
        [limit_maxbytes] => 943718400
        [curr_connections] => 84
        [total_connections] => 4946
        [connection_structures] => 178
        [bytes] => 7259957
        [cmd_get] => 1679091
        [cmd_set] => 351809
        [get_hits] => 1662048
        [get_misses] => 17043
        [evictions] => 0
        [bytes_read] => 109388476
        [bytes_written] => 3187646458
        [version] => 1.4.13

Então, as coisas que descartei até agora são:

  • Atingir o limite máximo de conexões ( curr_connections de 84 está bem abaixo do padrão de máximo de 1024)
  • Troca - a máquina possui 900M de 1024M de memória dedicada ao memcached em uma máquina dedicada. Parece estar usando apenas cerca de 7 MB de dados de acordo com o bytes stat.

Como eu diagnostico os outros problemas de hardware? O prstat não mostra muita coisa em termos de uso da CPU ou da memória. Não sei como descobrir os problemas de rede, mas como esse é um servidor dedicado na mesma rede privada da caixa da web, não acho que seja um problema de conectividade ( ping é menor que um milissegundo entre as caixas).

Há algo mais que eu estou sentindo falta aqui? Está me deixando louca.

Editar: também esqueci de mencionar que tentei conexões persistentes e não persistentes com impacto mínimo / sem impacto.

    
por Brad Dwyer 26.03.2012 / 23:16

4 respostas

0

O problema foi que a máquina que estava chamando estava usando toda a CPU, o que estava fazendo com que suas conexões TCP ficassem muito pesadas. O escalonamento da camada da web corrigiu o problema horizontalmente. Isso acabou não sendo um problema do memcached - foi exatamente aí que os sintomas desse outro problema surgiram.

    
por 18.06.2012 / 02:08
2

O desempenho do Memcached pode diminuir significativamente se ele usar memória swap. Se você perceber que a memória swap está sendo usada em seu servidor, você pode tentar iniciar o memcached com a opção -k .

De: link

Avoid Swapping

Assign physical memory, with a few percent extra, to a memcached server. Do not over-allocate memory and expect swap to save you. Performance will be very, very poor. Take extra care to monitor if your server is using swap, and tune if necessary.

    
por 30.03.2012 / 06:55
1

Mudei os sistemas operacionais do SmartOS para o Ubuntu e o problema parece estar resolvido. Não sei por que, mas parece ter sido um problema entre o memcached e o SO.

    
por 07.04.2012 / 01:58
0

Verifique também se você realmente tem conexões persistentes funcionando como você pensa. (Oi pergunta original de 6 anos atrás ... ainda ❤️ você ...)

    
por 11.09.2018 / 02:49