Добрый день!
Прошу помочь в оптимизации squid для ускорения доступа к интернету.
Имеется канал доступа к сети интернет со средними пропускными характеристиками и, примерно, 300 пользователей.
Сервер, на котором располагается прокси имеет 8Gb ОЗУ, RAID-5, гигабитные сетевые адаптеры. Использовать его планирую только для раздачи инета.
Версия squid - 3.4.8
Небольшой дисковый кэш мне нужен (гигов примерно на 20)
Вот такой конфиг у меня получился:
(привожу только важные настройки), регулярок у меня пока нет, только стандартные, пока важно добиться максимальной производительности
# Настройки использования памяти
memory_pools on
memory_pools_limit 0
# Настройки кэша в ОЗУ
cache_mem 6024 MB
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
# Настройки дискового кэша
cache_replacement_policy heap LFUDA
cache_dir ufs /var/cache/squid 20000 48 256
maximum_object_size 20024 KB
minimum_object_size 0.5 KB
# Автоматическая докачка небольших файлов
range_offset_limit 1024 KB
# Кэширование IP-адресов
ipcache_size 8192
# Настройка логов
cache_store_log none
client_db off
# Закрывать наполовину закрытые соединения
half_closed_clients off
# Жесткое кэширование для некоторых статичных типов файлов
refresh_pattern -i \.bz2$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.exe$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.gif$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.gz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.ico$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.jpg$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.mid$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.mp3$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.mp4$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.pdf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.swf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.svg$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.tar$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.tgz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.zip$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.rar$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.msi$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.png$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
# Основные параметры кэширования
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
Не привожу остальные настройки, например, настройки пулов, так как это пока не важно
Вот какой я наметил план для себя:
1) максимальное использование ОЗУ
2) кэш на диске для хранения более крупных файлов - инсталяшки, картинки и.т.д
3) в ОЗУ хранить мелкие и часто встречающиеся файлы
Первая засада:
первоначально использовал параметр
minimum_object_size 1024 KB - с таким расчетом, что к дисковый кэш будут попадать только файлы больше или равно этого размера.
В результате в логах только TCP_MISS - объекты не найдены в кэше. Убрал.
Вторая:
сейчас вероятность попадания в кэш достаточно низкая 1-2% от дневного трафика
Третья:
не все файлы, даже удовлетворяющие условиям, попадают в кэш. Например пробую скачать отсюда файл pdf (5 Мб)
www.niva-club.net/downloads.php?view=detail&df_id=19. Он не кэшируется ни в какую.
Четвертая:
отдача интернета идет как-то не так, некоторые страницы долго не докачиваются до конца, браузер может 3-5 сек не открывать страницу и.т.д
В общем, чуствую, что где то я сильно не прав в настройках. Может кто чего подскажет.
Да, чуть не забыл: после проб и ошибок memory_replacement_policy оставил lru, так как с ним процент попадания в кэш все же выше
В логах преобладают
TCP_MISS/200
TCP_MISS/302
и редко TCP_MEM_HIT/200
Спасибо всем