Настроен сквид для выхода в интернет 500~600 людей, ломящихся в интернет почти одновременно.избранные места из конфига:
cache_mem 120 MB
cache_dir ufs /var/squid/cache 10000 16 256redirect_program /usr/local/bin/squidGuard
redirect_children 20auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=DOMEN+webusers
auth_param ntlm children 32
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate off
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of=DOMEN+webusers
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive offВсё пашет нормально, но раз 8-10 в день в логи падают следующие вещи и создаётся core файл, но работа сквида при этом не приостанавливается:
Apr 20 10:17:15 proxyserver kernel: pid 27392 (squid), uid 100: exited on signal 6 (core dumped)
Apr 20 10:17:15 proxyserver squid[22483]: Squid Parent: child process 27392 exited due to signal 6
Apr 20 10:17:18 proxyserver squid[22483]: Squid Parent: child process 32494 startedИногда попадается и такое:
Apr 18 10:48:49 proxyserver (squid): xcalloc: Unable to allocate 1 blocks of 4108 bytes!
я думаю, что сквиду не хватает памяти, что нужно оттюнинговать чтобы процессы-потомки не валились в core?
>cache_mem 120 MB
Обычно реальный расход втрое больше. Хватает?>cache_dir ufs /var/squid/cache 10000 16 256
10 Гб это слишком много. На индекс памяти уйдет изрядно.Советую в любом случае прикрутить mrtg для слежения за всеми показателями squid.
>>cache_mem 120 MB
>Обычно реальный расход втрое больше. Хватает?Ну здесь я поставил это число руководствуясь официальной документацией по сквид, согласно которой на каждый 1 Гб под кэш, нужно здесь выделять 10 Мб памяти + 20-30 мегов на резерв
У меня кэш 10 гигов -> следовательно я и поставил 100+20=120>
>>cache_dir ufs /var/squid/cache 10000 16 256
>10 Гб это слишком много. На индекс памяти уйдет изрядно.А сколько порекомендуешь?
>
>Советую в любом случае прикрутить mrtg для слежения за всеми показателями squid.
>я вот тоже думаю её по любому прикручивать, не посоветуешь где можно почитать по РУССКИ насчет этой проги и способов её прикручивания?
>я вот тоже думаю её по любому прикручивать, не посоветуешь где можно
>почитать по РУССКИ насчет этой проги и способов её прикручивания?
гугл знает все.
http://squid.opennet.ru/mrtg/
>Ну здесь я поставил это число руководствуясь официальной документацией по сквид, согласно
>которой на каждый 1 Гб под кэш, нужно здесь выделять 10
>Мб памяти + 20-30 мегов на резерв
>У меня кэш 10 гигов -> следовательно я и поставил 100+20=120Вообще, в официальной документации сказано:
# TAG: cache_mem (bytes)
# NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS SIZE.
# IT ONLY PLACES A LIMIT ON HOW MUCH ADDITIONAL MEMORY SQUID WILL
# USE AS A MEMORY CACHE OF OBJECTS. SQUID USES MEMORY FOR OTHERТо есть, этот параметр регулирует означает размер кеша в оперативной памяти. 8 Mb
>>>cache_dir ufs /var/squid/cache 10000 16 256
>>10 Гб это слишком много. На индекс памяти уйдет изрядно.
>А сколько порекомендуешь?
один гиг>>Советую в любом случае прикрутить mrtg для слежения за всеми показателями squid.
>я вот тоже думаю её по любому прикручивать, не посоветуешь где можно
>почитать по РУССКИ насчет этой проги и способов её прикручивания?
прям здесь, на опеннете
>То есть, этот параметр регулирует означает размер кеша в оперативной памяти. 8
>Mb
>Ты сам то понял что написал? Вот именно там и написано что нужно 10 метров на каждый 1 гиг
>>>>cache_dir ufs /var/squid/cache 10000 16 256
>>>10 Гб это слишком много. На индекс памяти уйдет изрядно.
>>А сколько порекомендуешь?
>один гигмаловато на самом то деле. Я попробую наверное 4096 мегов поставить.
>
>>>Советую в любом случае прикрутить mrtg для слежения за всеми показателями squid.
>>я вот тоже думаю её по любому прикручивать, не посоветуешь где можно
>>почитать по РУССКИ насчет этой проги и способов её прикручивания?
>прям здесь, на опеннете
спасибо
>>То есть, этот параметр регулирует означает размер кеша в оперативной памяти. 8
>>Mb
>>
>Ты сам то понял что написал? Вот именно там и написано что
>нужно 10 метров на каждый 1 гигНу ты упорный!
http://www.squid-cache.org/Doc/FAQ/FAQ-8.html
Пункт 8.9
Reduce the cache_mem parameter in the config file. This controls how many ``hot'' objects are kept in memory.Пункт 8.11
As a rule of thumb on Squid uses approximately 10 MB of RAM per GB of the total of all cache_dirs (more on 64 bit servers such as Alpha), plus your cache_mem setting and about an additional 10-20MB. It is recommended to have at least twice this amount of physical RAM available on your Squid server.Слово "plus" видишь?
А реально жрёт еще больше и, если добирается до свопа, начинаются тормоза.
>>>То есть, этот параметр регулирует означает размер кеша в оперативной памяти. 8
>>>Mb
>>>
>>Ты сам то понял что написал? Вот именно там и написано что
>>нужно 10 метров на каждый 1 гиг
>
>Ну ты упорный!
>
>http://www.squid-cache.org/Doc/FAQ/FAQ-8.html
>Пункт 8.9
>Reduce the cache_mem parameter in the config file. This controls how many
>``hot'' objects are kept in memory.
>
>Пункт 8.11
>As a rule of thumb on Squid uses approximately 10 MB of
>RAM per GB of the total of all cache_dirs (more on
>64 bit servers such as Alpha), plus your cache_mem setting and
>about an additional 10-20MB. It is recommended to have at least
>twice this amount of physical RAM available on your Squid server.
>
>
>Слово "plus" видишь?
>
>А реально жрёт еще больше и, если добирается до свопа, начинаются тормоза.
>т.е. по твоему надо ставить 8 мегов?
>т.е. по твоему надо ставить 8 мегов?Я сам ещё не волшебник, только учусь. Всё нижеследующие - имхо.
Вообщем, cache_mem задает кеш в памяти. Т.е. реальный кеш - cache_dir - лежит на винте (в памяти его индекс, между прочим), а в cache_mem лежат "горячие" объекты. Т.е. если, скажем, считали картинку с диска и отдали юзеру, то зачем её с памяти вытирать? Вот она и лежит в cache_mem.
Это логика сквида. Но линукс (с другими *никсами не знаком) свободную ОЗУ отводит под дисковые буферы. Т.е. если повторно будет считывание с диска, то реально возмется с ОЗУ. Получается дублирование функциональности. Дисковые буферы и их политика настраивается через sysctl (но тут я - пас).
А чтобы реально наблюдать работу, а не строить предположения и гадать "много, мало" - нужен мониторинг: мгновенный через cachemgr.cgi и постоянный через snmp и mrtg.
http://www.squid-cache.org/Doc/FAQ/FAQ-8.html#ss8.7