Устранение неполадок лака sess_closed_err - PullRequest
0 голосов
/ 01 марта 2019

Мы предоставляем IPTV-услуги нашим Клиентам с Varnish-cache 6.0, и меня немного беспокоит, что могут быть проблемы с нашими серверами Varnish-cache.Это предположение основано на количестве отчетов об инцидентах клиентов, когда поток IPTV проходит через наш Varnish-кэш вместо внутреннего сервера напрямую.

Именно поэтому я хотел бы устранить все ошибки от лакингстата до узкогоиз возможных причин инцидентов, так как на данный момент у меня нет лучшего взгляда на проблему.

Допустим, я далек от того, чтобы быть знакомым или специалистом по лаку.

Итак, давайте углубимся в «проблему»:

varnishstat -1 output:

MAIN.sess_closed 38788 0.01 Session Closed

MAIN.sess_closed_err 15260404 3.47 Session Closed with error

Практически все соединения с серверами Varnish-cache закрываются с ошибкой.Я настроил Виртуализированный демонстрационный сервер в нашей Сети с идентичной конфигурацией Varnish, и там был создан единственный sess_closed_err, когда я менял каналы в моем VLC-медиаплеере.Отметим, что я не смог запустить на сервере одновременно несколько VLC, и что наши клиенты используют STB-боксы для использования сервиса.

Итак, мой реальный вопрос: как можноЯ выясняю причину закрытия сеансов с ошибкой?

1 Ответ

0 голосов
/ 01 марта 2019

Есть некоторые другие счетчики, которые будут более конкретно показывать, что происходит с сессиями.Поэтому следующим шагом в устранении неполадок является просмотр этих счетчиков:

varnishstat -1 | grep ^MAIN.sc_

Я немного уточню на типичном примере:

$ sudo varnishstat -1 | egrep "(sess_closed|sc_)"
MAIN.sess_closed                 8918046         1.45 Session Closed
MAIN.sess_closed_err            96244948        15.69 Session Closed with error
MAIN.sc_rem_close               86307498        14.07 Session OK  REM_CLOSE
MAIN.sc_req_close                8402217         1.37 Session OK  REQ_CLOSE
MAIN.sc_req_http10                 45930         0.01 Session Err REQ_HTTP10
MAIN.sc_rx_bad                         0         0.00 Session Err RX_BAD
MAIN.sc_rx_body                        0         0.00 Session Err RX_BODY
MAIN.sc_rx_junk                      132         0.00 Session Err RX_JUNK
MAIN.sc_rx_overflow                    2         0.00 Session Err RX_OVERFLOW
MAIN.sc_rx_timeout              96193210        15.68 Session Err RX_TIMEOUT
MAIN.sc_tx_pipe                        0         0.00 Session OK  TX_PIPE
MAIN.sc_tx_error                       0         0.00 Session Err TX_ERROR
MAIN.sc_tx_eof                         3         0.00 Session OK  TX_EOF
MAIN.sc_resp_close                     0         0.00 Session OK  RESP_CLOSE
MAIN.sc_overload                       0         0.00 Session Err OVERLOAD
MAIN.sc_pipe_overflow                  0         0.00 Session Err PIPE_OVERFLOW
MAIN.sc_range_short                    0         0.00 Session Err RANGE_SHORT
MAIN.sc_req_http20                     0         0.00 Session Err REQ_HTTP20
MAIN.sc_vcl_failure                    0         0.00 Session Err VCL_FAILURE

Вывод этой конкретной среды показываетчто большинство сеансов, которые закрываются с ошибкой, происходит из-за тайм-аута приема (MAIN.sc_rx_timeout).Этот тайм-аут контролирует, как долго лак будет поддерживать открытые соединения, и устанавливается с помощью параметра timeout_idle на varnishd.Его значение составляет 5 секунд по умолчанию.Используйте varnishadm, чтобы увидеть текущее значение и описание тайм-аута:

$ sudo varnishadm param.show timeout_idle
timeout_idle
        Value is: 10.000 [seconds]
        Default is: 5.000
        Minimum is: 0.000

        Idle timeout for client connections.

        A connection is considered idle until we have received the full
        request headers.

        This parameter is particularly relevant for HTTP1 keepalive
        connections which are closed unless the next request is
        received before this timeout is reached.

Увеличение timeout_idle, вероятно, уменьшит количество сеансов, которые закрыты из-за тайм-аута простоя.Это можно сделать, установив значение в качестве параметра при запуске лака.Пример:

varnishd [...] -p timeout_idle=15

Обратите внимание, что плюсы и минусы связаны с увеличением этого тайм-аута.

...