Как правильно оптимизировать Squid 3 для повышения производительности?

Добрый день!
Прошу помочь в оптимизации 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

Спасибо всем
  • Вопрос задан
  • 3438 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nevzorofff
Сетевик
Если сервер используется только под сквид, то почему не сделать нормальный дисковый кеш? 20 гигов не мало на 300 пользователей? При шести гигах ОЗУ можно и 60 кеш сделать.

У вас выше 1-2% так и не поднялось использование?
Сейчас немного озадачился тем же вопросом, т.к. появились клиенты на дорогих и медленных каналах (3G и спутниковые). Но, похоже, из-за повсеместного https толку от сквида не будет :(
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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