Замедление прокси со временем: проверьте conntrack и лимиты ресурсов
Исследуйте давление отслеживания соединений вместе с лимитами ресурсов прокси и хоста, когда сбои накапливаются со временем.
Прокси отвечает после перезапуска. Через несколько часов новые соединения зависают. Ещё один перезапуск покупает ещё один спокойный интервал. Эта картина говорит о накапливающемся состоянии, но не указывает, какое именно состояние виновато.
На пути Linux с отслеживанием соединений один из кандидатов — таблица conntrack. Проверьте эти существующие значения на машине и в сетевом пространстве имён, которое обрабатывает трафик:
/proc/sys/net/netfilter/nf_conntrack_count
/proc/sys/net/netfilter/nf_conntrack_maxПервое сообщает о выделенных записях потоков; второе их ограничивает. Это не счётчики пользователей Squid или HTTP-запросов. Состояние потока в ядре может пережить активную работу приложения.
Ищите связь, а не просто большое число
Сравните заполненность во времени с началом сбоев новых соединений и с соответствующими сообщениями ядра. Высокое число без подходящих доказательств сбоя отличается от таблицы, которая раз за разом достигает предела как раз тогда, когда запросы начинают выходить по тайм-ауту.
Таблица может обслуживать не только прокси. Другие локальные службы, пересылаемый трафик или другой загруженный сетевой путь тоже могут вносить вклад. То, что перезапуск прокси меняет симптом, не доказывает, что причиной был кэш объектов Squid.
Держите в поле зрения конкурирующие объяснения: дескрипторы файлов, очереди помощников аутентификации, задержки DNS, давление на память и полная файловая система тоже могут ухудшаться со временем. Запишите, какой ресурс растёт и какие операции перестают работать первыми. То, что долгоживущие соединения выживают, пока новые терпят неудачу, — полезное доказательство, но не диагноз сам по себе.
Повышение лимита стоит памяти. Прежде чем менять его, определите рабочую нагрузку, пространство имён и доступную ёмкость. Бездумное сокращение тайм-аутов может сломать полезные простаивающие сеансы; сброс всего состояния соединений может нарушить посторонний трафик.
Полезный результат — это объяснение накопления и соответствующее ему изменение ёмкости или жизненного цикла. Безопасно повышать — не свойство, присущее каждому прокси-серверу.