@tranvi

Почему Squid 2.7 вешается, если ему задать большой файл внешних правил для url_regex?

Есть squid 2.7, работаюший на убунте. Оперативной памяти у комптьютера - 2гига. В среднем за 5 лет работы черный список сайтов наполнился на около 1500 сайтов. Развлечения, соц.сети, порно... Разбит по категориям, в максимальном списке - 700 сайтов.

Из вышестоящей организации пришел файл с категорическим приказом: обеспечить фильтрацию приложенного списка, и файл со списком на 10 мегабайт, длиной в 552тысячи сайтов.

Первая попытка сделать решение в лоб через:

acl url_blnav url_regex "/home/....../domains.txt"
http_access deny url_blnav

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

Я сократил список до 380тыч сайтов, путем убирания сайтов с общими словами, типа sex porno erotic и пр. Потом пробовал разбивку файла на части - это уменьшает потребление памяти (до 2.5гиг), но все равно не укладывается в оперативку. В итоге сквид все равно уходит в своп и затыкается. на моих обычных правилах сквид занимал ~650-700 мегабайт памяти.

Как можно засунуть в сквид блоклист на 380 тысяч сайтов?

Добавить память - не могу. Обсуждать вопрос о снижении кол-ва сайтов (там столько ереси, куда 100% не пойдут люди) - тоже не могу.

отдельный вопрос - поможет ли апгрейд на сквид 3.3 или 3.2 ?

  • Вопрос задан
  • 2824 просмотра
Решения вопроса 1
@lutskyy

Насколько мне помнится, под каждую строчку в domains.txt squid создаст отдельную acl в памяти. Можно попробовать использовать SquidGuard (http://www.squidguard.org/) он как раз для работы с большими списками.

Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@AlexRay

Возможно при таком раскладе есть смысл сделать whitelist вместо blacklist? Либо вообще сделать фильтрацию не средствами squid, а, например, при помощи dns, к которому squid обращается.

Ответ написан
@bondbig

Апгрейд на 3.х - это первое, что я сделал бы. 2.х сильно устарел. С вероятностью 0.8 твоя проблема решится апгрейдом.

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы