squid - у меня в подполе раздается подземный стук
Настало и мне время задать совершенно идиотский вопрос.
Некоторое время я пользовался прокси polipo, но он, к сожалению, не отвечает новым задачам. Внимательно прочитав squid-users-guide, я уяснил, что особых изменений в конфиге не нужно и решил протестировать. К моему превеликому удивлению, время загрузки страниц весьма заметно выросло (в сравнении с polipo; и, разумеется, я не имею в виду время первой загрузки). Обложившись разными браузерами и проводя опыты методом научного тыка (оба два прокси - на одном хосте, браузер - на другом), я обнаружил, что кэширование таки работает, однако стабильно гораздо медленнее, чем раньше. В цифрах получилось, что время загрузки в одной и той же опере некоей многократно прокэшированной страницы с большим к-вом элементов (браузер показал около 170) в случае polipo составляет 5с, а со squid - 10c. Другие подобные страницы загружаются со схожими результатами. В access.log почти все загружаемые элементы выглядят так:
TCP_MISS/304 nnn GET http://url - DIRECT/xxx.xxx.xxx.xxx - (т.е. кэшированы браузером), есть несколько TCP_IMS_HIT/304.
Мне с трудом верится, что polipo работает во столько раз быстрее, что, даже учитывая потери времени в браузере, общий результат - 2:1.
В чем может быть причина всего этого? )
конфиг squid:
acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 192.168.11.0/24 # RFC1918 possible internal network acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 901 # SWAT acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access allow localhost http_access allow localhost http_access deny all http_port 3128 hierarchy_stoplist cgi-bin ? cache_mem 640 MB cache_dir ufs /var/cache/squid 1000 32 512 coredump_dir /var/cache/squid 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 pipeline_prefetch on
polipo (неинтересное опущено):
serverSlots=4 serverMaxSlots=8 proxyAddress = 0.0.0.0 allowedClients = 127.0.0.1, 192.168.11.0/24 relaxTransparency = maybe maxDiskEntries = 512 idleTime = 240 maxObjectsWhenIdle = 256 maxWriteoutWhenIdle = 512 disableIndexing = false disableServersList = false objectHashTableSize = 128000 objectHighMark = 10240 censorReferer = maybe diskCacheWriteoutOnClose = 1024 diskCacheTruncateSize = 10240000
- Для комментирования войдите или зарегистрируйтесь
Polipo на порядок проще и
Polipo на порядок проще и делает существенно меньше "ненужной" (с точки зрения кэширования) работы - результат налицо! :)
Да и само кэширование в нем организованно проще.
Конечно, в сквиде можно много чего покрутить и пооптимизировать, но принципиально ничего не изменится!
если сведения свежи в памяти,
если сведения свежи в памяти, подскажите, что стоит покрутить. Я уже много чего крутил, но гораздо больше осталось нетронутым.
Прежде всего - параметры
Прежде всего - параметры кэширования (размеры, проценты и т.д.), потом фаиловая система, потом работа с ДНС.
Порядок может быть и другим - посмотрите статистику: где больше тормозит, оттуда и начинайте.