cache_dir

    TAG: cache_dir

    Использование:

    cache_dir Type Directory-Name Fs-specific-data [options]

    Вы можете определить несколько cache_dir для распределения кэша на различных партициях жесткого диска.

    Параметр Type определяет, какой используется тип файловой системы. Только "ufs" тип доступен по умолчанию.

    Примечание: Для включения дополнительных типов файловой системы, смотри опцию -enable-storeio при компиляции.

    Directory

    директория, где будет распологатся кэш. Если вы хотите использовать весь диск для размещения кэша, то просто укажите точку монтирования диска. Директория должна существовать и быть открыта для записи процессом Squid. Squid НЕ СОЗДАСТ эту директорию за вас.

    Тип ufs:

    "ufs" это старый, хорошо знакомый формат для Squid.

    cache_dir ufs Directory-Name Mbytes L1 L2 [options]

    Mbytes

    это количество дискового пространства в мегабайтах(MB), которое может быть задействовано в этой директории. По умолчанию, 100 Мб. Измените это в соответствии со своими потребностями. НЕ устанавливайте этот параметр в значение размера всего вашего свободного пространства. Вместо этого, если вы хотите, чтобы Squid использовал всё дисковое пространство, установите этот параметр в значение 80% от всего свободного пространства.

    Level-1

    это количество каталогов первого уровня, которые будут созданы в директории, определенной в опцией 'Directory'. По умолчанию, 16.

    Level-2

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

    Тип aufs:

    "aufs" является схожим с "ufs" форматом, использующий POSIX-потоки для записи данных на диск.

    cache_dir aufs Directory-Name Mbytes L1 L2 [options]

    Смотри описание аргументов, используемых в "ufs"

    Тип diskd:

    "diskd" является схожим форматом с "ufs", используя раздельные процессы для записи данных на диск.

    cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]

    Смотри описание аргументов, используемых в "ufs"

    Параметр Q1 определяет количество неподтвержденных I/O запросов, после которого Squid перестает открывать новые файлы. Если этих запросов будет много, то Squid перестанет открывать новые файлы для чтения ещё. По умолчанию, 64.

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

    Когда Q1 < Q2 (по умолчанию), кэш директория оптимизирована под малое время для ответа на запрос, ценой уменьшения количества попаданий(TCP_HIT). Если Q1 > Q2, кэш директория оптимизрована на увеличение количества попаданий(TCP_HIT), ценой увеличения время для ответа на запрос.

    Примечание: Для тех кто не понял предпоследние два абзаца, объясняем другими словами. При работе с кэшем, Squid осуществляет два основных действия: запись в кэш и выборка из кэша. Эти действия Squid производит с диском, соответственно вызывая команды на запись/чтение диска. Так вот, если Squid начинает слишком быстро записывать файлы в кэш директорию, может случится сбой системы, в связи с тем, что диск не успевает обрабатывать все запросы Squid корректно. Поэтому Squid прежде чем записать, файл спрашивает систему - можно ли записать в систему файл? Если система отвечает положительно, то Squid записывает файл, если ответ отрицательный, то незаписывает. А вот если ответа вообще не было, то здесь уже могут начатся проблемы. При отсутствии ответа от системы, Squid начинает считать количество "неответов". Контролирует это число параметры Q1 и Q2, с той лишь разницей, что при превышении Q1 отвечает за работу с уже существующими файлами кэша, а Q2 - за запись на диск новых файлов в кэш. А дальше описано понятно.

    Тип coss:

    block-size=n

    опредеяет "block size" для COSS 'cache_dir'. Squid использует номера файлов как номера блоков. Т.к. номера файлов ограничены до 24 битов, размер блока определяет максимальный размер COSS раздела. По умолчанию, 512 байтов, что определяет максимальный размер cache_dir 8 Гб.

    Примечание: нельзя менять размер 'block-size', после того как Squid записал первые объекты в 'cache_dir'.

    overwrite-percent=n

    определяет процент дискового пространства, который будет использоватся COSS для записи объектов, прежде чем они(объекты) в текущую полосу. Установление значения "n" близкого к 100, может стать причиной того, что COSS будет содержать много копий одного и того же объекта. По умолчанию 50.

    max-stripe-waste=n

    определяет максимальный размер дискового пространства отведенный под COSS полосу.

    membufs=n

    определяет количество "memory-only" полос используемых COSS.

    maxfullbufs=n

    определяет максимальное количество полос COSS, стоящих в очереди перед их освобождением(очищением).

    Тип null:

    Нет обязательных или рекомендательных опций

    ======= Общие опции==========

    read-only

    не записывать новые объекты в cache_dir

    min-size=n

    минимальный размер объекта для этой cache_dir. Можно использовать, для определения этой cache_dir только под большие объекты, в то время как остальные cache_dir определить под маленькие. По умолчанию, 0.

    max-size=n

    максимальный размер объекта для этой cache_dir.

    Примечание: для оптимального использования, вы должны расположить список cache_dir таким образом, что первыми будут идти директории с наименьшим значением max-size, а последующие cache_dir идут по нарастанию max-size. Директории не имеющие опции max-size, теоретически не имеют предела на размер объекта кэша.

    Примечание: для COSS, max-size должно быть менее COSS_MEMBUD_SZ(Жестко установлено в 1 Мб).

    Примечание для пользователей FreeBSD: COSS -- как и aufs -- использует асинхронный IO, поэтому если вы скомпилируете Squid без поддержки aufs, COSS будет использовать POSIX AIO. Это означает, что вам необходимо добавить строку:

    options VFS_AIO

    в вашу конфигурацию ядра, для использования COSS.

    На FreeBSD 5 и выше вы можете запустить модуль aio(4) и не пересобирать ваше ядро.

    Если вы скомпилировали Squid с поддержкой и COSS и aufs, COSS будет использовать методы записи aufs.

    По умолчанию:

    cache_dir ufs /usr/local/squid/cache 100 16 256