Como aumentar o rendimento do verniz?

5

Às vezes, em um site ocupado da Pressflow, percebo um tempo limite para usuários não autenticados enquanto a porta do servidor está longe de estar saturada, há muita memória não utilizada e a carga do servidor é muito baixa.

Além disso, o uso de largura de banda do site caiu em cerca de 30% desde que me mudei para o novo servidor desenvolvido pela Varnish com novas configurações. Daí eu duvido que a queda possa ser por causa das más configurações do Varnish.

Aqui estão alguns parâmetros relevantes:

DAEMON_OPTS="-a :80 \
              -T localhost:6082 \
              -b localhost:8080 \
              -u varnish -g varnish \
              -S /etc/varnish/secret \
               -p thread_pools=14 \
               -p thread_pool_min=200  \
               -p thread_pool_max=5000 \
               -p listen_depth=128 \
               -p thread_pool_add_delay=2\
               -p lru_interval=20 \
               -h classic,72227  \
               -p session_linger=120 \
               -p sess_workspace=32768 \
               -p connect_timeout=600 \
               -s malloc,15G"

# E aqui está a última versão do varnishstat:

1+21:07:54 
Hitrate ratio:       10       13       13
Hitrate avg:     0.8405   0.8408   0.8408

    21003013       158.92       129.32 Client connections accepted
    35390015       283.85       217.91 Client requests received
     4696051        26.99        28.92 Cache hits
          79         0.00         0.00 Cache hits for pass
      939223         4.00         5.78 Cache misses
    10041628        89.95        61.83 Backend conn. success
         108         0.00         0.00 Backend conn. failures
    20651750       162.92       127.16 Backend conn. reuses
     3202624        22.99        19.72 Backend conn. was closed
    23854404       187.90       146.88 Backend conn. recycles
       17397         0.00         0.11 Fetch head
    20499527       189.90       126.22 Fetch with Length
     6536900        37.98        40.25 Fetch chunked
     2410249        15.99        14.84 Fetch wanted close
           4         0.00         0.00 Fetch failed
        2261          .            .   N struct sess_mem
        1728          .            .   N struct sess
      263703          .            .   N struct object
      264848          .            .   N struct objectcore
      138282          .            .   N struct objecthead
         116          .            .   N struct vbe_conn
        2800          .            .   N worker threads
        2801         0.00         0.02 N worker threads created
        2889         0.00         0.02 N worker threads limited
         832         0.00         0.01 N overflowed work requests
           1          .            .   N backends
      658946          .            .   N expired objects
        6948          .            .   N LRU nuked objects
     3425448          .            .   N LRU moved objects
    31922006       257.87       196.56 Objects sent with write
    21002526       160.92       129.32 Total Sessions
    35390015       283.85       217.91 Total Requests
         750         0.00         0.00 Total pipe
    29752808       252.87       183.20 Total pass

Então, aqui está a minha pergunta: Como devo saber se os fios de verniz estão saturados? Como devo manipular os parâmetros para aumentar o rendimento? Obrigado

    
por alfish 25.10.2012 / 16:16

1 resposta

5

Eu principalmente recomendo o ajuste thread_pool_min e thread_pool_max, os outros valores não ajudam muito.                -p thread_pools = 2 \                -p thread_pool_min = 500 \                -p thread_pool_max = 5000 \

Especificamente, a configuração de thread_pools para o número de CPUs não ajuda em nada e pode tornar a sua máquina mais lenta. É só um palpite, mas talvez isso já corrija o seu problema! :)

Você encontrará explicações muito boas aqui: link

    
por 08.11.2012 / 16:19