Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

12.33 Что такое наполовину закрытый файловый дескриптор?

TCP разрешает использование наполовину закрытых (`` полузакрытыми'') соединений. Это обеспечивается при помощи стистемного вызова Shutdown (2) . В Squid это значит, что клиент закрылд своб строну соединения для записи, но оставил открытой для чтения. Наполовину закрытые соединения достаточно хитрая штука, т.к. Squid не может отличить наполовину закрытого соединения от полностью закрытого.

Если Squid пытается прочитать данные из соединения и вызов Read () возвращает 0, то Squid считает, что клиент еще не получилответных данных полностью и помечает файловый дескриптор как наполовину закрытый. Скорее всего клиент обрвал запрос и соединение действительно закрыто. Однако есть небольшая вероятность, что клиент использовал вызов Shutdown () и все еще ​​может читать возвращаемые данные.

ЧТобы выключить поддержку наполовину закрытых соединений просто укажите в файле squid.conf следующее:

half_closed_clients от

В этом случае Squid будет всегда закрывать свою сторону соединения взамен того, чтобы помечать их как наполовину зкарытые.

12.34 Что делает - Enable-кучи замену?

Squid традиционно использует алгоритм замещения LRU. Начиная с версиею 2.3 , вы можете использовать другие алгоритмы замещения, указав их при помощи опции конфигурации - Enable-кучи замены . В настоящее время код замещения поддерживает два дополнительных алгоритма: LFUDA и GDS.

В Squid версии 2.4 и более поздних вы должны вы дожны использовать опции конфигурации:

. / Настроить - Enable-удаления-политик = куча

Далее, в squid.conf вы можете выбрать другую политику, указав ее при помощи директивы cache_replacement_policy . См. комментарии в squid.conf для более детальных пояснений.

Код замещения LFUDA и был разарботан Джона Дилли и прочими из Hewlett-Packard. Их работа описана в таких документах:

  1. Углубления и подтверждения кэша Squid-замена политики (HP Tech Report).

  2. Углубления и подтверждения замены Squid Cache Policy (WCW 1999 бумага).

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

Если вы сравниете показания команды DF и показания storedir кеш-менеджера, то вы заметите, что используемое дисковое пространство больше того, о чем сообщает Squid. Это может происходить по следующим причинам:

  • Squid не учитывает размера файла swap.state , который обычно присутсвует в каждой из cache_dir .

  • Директории также занимают место файловой системы.

  • Другие приложения могут использовать тот же раздел диска.

  • Размер блока вашей файловой системы может быт больше, чем думает кальмаров. При подсчете общего используемого дискового пространства, Squid округляет размер файла до числа блоков по 1024 байта. Если ваша файловая система использует блок большего размера, то такое "потраченое зря" дисковое пространство не будет учтено.

12.36 Как работают positive_dns_ttl и negative_dns_ttl ?

Директива positive_dns_ttl указывает Squid как долго хранить в кеше успешные DNS-запросы. Аналогично этому negative_dns_ttl указывает как долго Squid-у хранить в кеше неудачные DNS-запросы.

Директива positive_dns_ttl используется не всегда. Она НЕ используется в таких случаях:

  • В Squid-2.3 и более позних версиях в внутренней обработкой DNS-запросов. Внутренний обработчик работает по умолчанию для Squid-2.3 и более позних версий.

  • Если ВЫ наложили Патч `` DNS TTL'' для BIND.

  • Если вы используете FreeBSD, которая уже содержит патч DNS TTL.

Допустим у вас такие установки:

positive_dns_ttl 1 часа

negative_dns_ttl 1 минуты

Когда Squid делает запрос для имени типа www.squid-cache.org , он получает в ответ IP-адрес типа 204.144.128.89. Дарес кешируется на час. Это значит, что когда снова Squid запросит адрес дляwww.squid-cache.org , то будет исползоваться закешированный на час ответ. По прошествии часа, закешировання информация устаревает и Squid делает новый запрос для адреса www.squid-cache.org .

Если вы испоьзуете патч DNS TTL или используете внутренний обработчик, то каждое имя хоста имеет свое собственное значение TTL, которое было установлено администратором домена. Вы можете просмотреть эти значения на 'ipcache' странице кеш-менеджера. К примеру:

Имя хоста Флаги lstref TTL N

www.squid cache.org-C 73043 12784 1 (0) 204.144.128.89-OK

www.ircache.net C 73812 10891 1 (0) 192.52.106.12-OK

polygraph.ircache.net C 241768 -181261 1 (0) 192.52.106.12-OK

Поле TTL показывает сколько секунд должно пройти перед тем, как записить устареет. Отрицательное значение значит, что запись уже устарела и будет обнвлена ​​при следующем запросе.

Директива negative_dns_ttl указывает как долго хранить в кеше неудачные DNS-запросы. Когда Squid-у не удается отрезолвить имя хоста, выможете быть уверены, что это действительно неудачаня попытка и врядли вы получите верный ответ пока не пройдет короткий промежуток времени. Squid повторяет запросы много раз перед тем, как объявить запрос неудачным. Если хотите, можите установить negative_dns_ttl в ноль.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]