Кто подскажет как максимально увеличить сабж?
Машинка на которой крутится сквид П3-1000/2Gb Ram/Винты SCSi/Кэш на отдельном винте.
При подключении мимо сквида скорость значительно выше!
>При подключении мимо сквида скорость значительно выше!Добрый день!
что означает "выше"? прокачка? время реакции? или что-то еще?
какие параметры памяти установлены в squid.conf?
DNS правильно указан?вообще-то при таком кол-ве памяти все должно летать мухой...
причем достаточно намного меньшего кол-ва памяти... у меня 256Mb и единственный в системе винт IDE и все нормально...
>Добрый день!
>что означает "выше"? прокачка? время реакции? или что-то еще?
Особенно заметно по времени реакции
>какие параметры памяти установлены в squid.conf?
>DNS правильно указан?
стоит локальный bind (на него и смотрим) - все наружные адреса резолвятся нормально
>
>вообще-то при таком кол-ве памяти все должно летать мухой...
>причем достаточно намного меньшего кол-ва памяти... у меня 256Mb и единственный в
>системе винт IDE и все нормально...squid.conf
http_port 3129
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \? chat
no_cache deny QUERY
cache_mem 50 MB
maximum_object_size 8 MB
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
cache_dir ufs /usr/local/squid/cache 15360 16 256
pid_filename /usr/local/squid/logs/squid.pid
ftp_user anonymous@permonline.ru
authenticate_program /usr/local/sbin/ncsa_auth /usr/local/etc/squid/passwd.squid
authenticate_ttl 60 seconds
quick_abort_pct 60
negative_ttl 5 minute
positive_dns_ttl 6 hour
negative_dns_ttl 5 minute
[acl'и поскипаны ]logfile_rotate 12
client_db on
cache_effective_user nobody
cache_effective_group nogroup
memory_pools on
memory_pools_limit 256 MB
>squid.conf
>
>http_port 3129
странное значение, но дело хозяйское, на скорость не влияет...
обычно 3128>cache_mem 50 MB
ИМХО, 50MB - очень мало для такого большого дискового кэша, индексы кэша могут просто не уместиться в памяти, когда кэш основательно наполнится.
при такой памяти и кэше я бы отдал 512MB или даже больше.>cache_store_log /usr/local/squid/logs/store.log
нужен ли? лучше выключить, чтобы не ел производительность>cache_dir ufs /usr/local/squid/cache 15360 16 256
мне кажется, что лучше использовать diskd, особенно при большом количестве клиентов.а сколько стоит dns_children и authenticate_children ?
сколько примерно клиентов? если много, то ставь чилдренов не меньше 8 штук каждыхпочитай статейку http://www.bog.pp.ru/work/squid.html
там многие вещи неплохо описаны
Поставил squid-2.5 из портов
Скорость вроде увеличилась...Да. Клиентов от 1 до 20
Канал 128kbitВот новый config
http_port 3128
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \? chat
no_cache deny QUERY
cache_mem 512 MB
maximum_object_size 8 MB
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log none
cache_dir diskd /usr/local/squid/cache 15360 16 128
pid_filename /usr/local/squid/logs/squid.pid
ftp_user anonymous@permonline.ru
auth_param basic program /usr/local/libexec/ncsa_auth /usr/local/etc/squid/passwd.squid
auth_param basic children 10
auth_param basic realm PermKadastr proxy-caching web server
auth_param basic credentialsttl 60 seconds
quick_abort_pct 60
negative_ttl 5 minute
positive_dns_ttl 6 hour
negative_dns_ttl 5 minute
[acl skipped]icp_access allow allowed_hosts
icp_access deny all
cache_mgr postmaster
logfile_rotate 12
client_db on
cache_effective_user nobody
cache_effective_group nogroup
visible_hostname mail.permkadastr.local
memory_pools on
memory_pools_limit 256 MB
dns_children 10
cachemgr_passwd 123456 all
^^^^^^^^^^^^^^^^^^^^^^^^^^ как заставить эту заразу работать?>почитай статейку http://www.bog.pp.ru/work/squid.html
>там многие вещи неплохо описаны
Читал. Много думал :-)
>Да. Клиентов от 1 до 20
>Канал 128kbit
ИМХО, для такой нагрузки машинки PIII и 256Mb более чем достаточно
зачем такой монстр?еще для небольшого ускорения можно указать
maximum_object_size_in_memory 32 KB
или даже 64 KB, поскольку памяти навалом...еще есть смысл поиграться с cache_replacement_policy и memory_replacement_policy, но вряд ли ты заметишь разницу в политиках при таком перевесе памяти...
по грубым подсчетам, чтобы забить весь кэш в оперативной памяти нужно целый рабочий день полностью занимать канал серфингом...
у меня сейчас на винте кэш меньше :)>cache_dir diskd /usr/local/squid/cache 15360 16 128
>dns_children 10
а путь к dnsserver не забыл указать?
для использования diskd и для dns_children, насколько я в курсе, нужно было указать соответсвующие опции при компиляции>cachemgr_passwd 123456 all
>^^^^^^^^^^^^^^^^^^^^^^^^^^ как заставить эту заразу работать?
все замечательно работает!
при входе указываешь имя юзера manager и свой пароль, и все работает!
>>cachemgr_passwd 123456 all
>>^^^^^^^^^^^^^^^^^^^^^^^^^^ как заставить эту заразу работать?
>все замечательно работает!
>при входе указываешь имя юзера manager и свой пароль, и все работает!
>
connect: (61) Connection refused
Говорит :-(
>>>cachemgr_passwd 123456 all
>>>^^^^^^^^^^^^^^^^^^^^^^^^^^ как заставить эту заразу работать?
>>все замечательно работает!
>>при входе указываешь имя юзера manager и свой пароль, и все работает!
>>
>connect: (61) Connection refused
>Говорит :-(а следующие строчки присутствуют?
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
http_access allow manager localhost
http_access deny manager
вообще-то они стоят изначально, но вдруг куда делись... :)
>а следующие строчки присутствуют?
>acl manager proto cache_object
>acl localhost src 127.0.0.1/255.255.255.255
>http_access allow manager localhost
>http_access deny manager
>вообще-то они стоят изначально, но вдруг куда делись... :)
строчки присутствуют
результат тот же :-(
>строчки присутствуют
>результат тот же :-(тогда надо внимательно все acl и http_access строки разбирать...
желательно, чтобы эти строки шли до твоих собственных acl-ов и http_access-овкстати, а просто какой-нибудь http://localhost/index.html смотрится?
может, Apache не фунциклит...
>>строчки присутствуют
>>результат тот же :-(
>
>тогда надо внимательно все acl и http_access строки разбирать...
>желательно, чтобы эти строки шли до твоих собственных acl-ов и http_access-ов
>
>кстати, а просто какой-нибудь http://localhost/index.html смотрится?
>может, Apache не фунциклит...
На апаче 4 вирт. хоста сидят и все пучком робит (в т.ч. php & cgi)
т.е. у тебя не работает одна cgi-ишка из всей их массы? с путями до нее все нормально?строка http_port 127.0.0.1:3128 в squid.conf есть?
а подпись чья стоит после connect: (61) Connection refused ?
если смотришь на той же машине, где squid, то Listen 127.0.0.1:80 отдельной строкой в httpd.conf есть?
вопросы дурацкие, но ничего более путного пока не придумал...
Спасибо за советы. Разобрался
У меня тоже самое! Не подскажите в чем проблема здесь?
А что мешает internal DNS resolver использовать?... Зачем запускать еще и DNS-резолвер отдельным процессом?>а сколько стоит dns_children и authenticate_children ?
>сколько примерно клиентов? если много, то ставь чилдренов не меньше 8 штук
>каждых
>
>почитай статейку http://www.bog.pp.ru/work/squid.html
>там многие вещи неплохо описаныНу кстати, там же и написано:
"...
--disable-internal-dns (вместо внутренних запросов использовать внешние процессы dnsserver; рекомендуется для версий до 2.4)
..."/poige
>А что мешает internal DNS resolver использовать?... Зачем запускать еще и DNS-резолвер
>отдельным процессом?
как я понимаю, чтобы резолвить ДНС адреса параллельно, а не последовательно, т.е. имхо internal DNS - примерно то же самое, что dns_children 1... кроме того, во время резолвинга внешним резолвером сквид не останавливается и может обрабатывать другие запросы либо заниматься своими делами...
а вообще, чтобы знать точно - надо код рыть, только смысл?>--disable-internal-dns (вместо внутренних запросов использовать внешние процессы dnsserver; рекомендуется для версий до
>2.4)
>..."
видимо, какая-то особенность конкретных версий... не знаю...
только, повторяюсь, какой смысл копать это, если последняя stable замечательно работает?
>>А что мешает internal DNS resolver использовать?... Зачем запускать еще и DNS-резолвер
>>отдельным процессом?
>как я понимаю, чтобы резолвить ДНС адреса параллельно, а не последовательно, т.е.
>имхо internal DNS - примерно то же самое, что dns_children
>1... кроме того, во время резолвинга внешним резолвером сквид не останавливается
>и может обрабатывать другие запросы либо заниматься своими делами...
>а вообще, чтобы знать точно - надо код рыть, только смысл?смысл в том, что при большой нагрузке и/или неоптимально выбранных значениях опции, может не хватить этих самых "DNS-детей" и тогда получим то, от чего пытались уйти.
>>--disable-internal-dns (вместо внутренних запросов использовать внешние процессы dnsserver; рекомендуется для версий до
>>2.4)
>>..."
>видимо, какая-то особенность конкретных версий... не знаю...
>только, повторяюсь, какой смысл копать это, если последняя stable замечательно работает?Так в том то и дело, что 2.5 и есть latest stable (на 2003-02), который замечательно работает с внутренним резолвером, а тот, в свою очередь, реализует общение с DNS-серверами самостоятельно, используя очереди, без каких-либо блокировок... В общем, как я понял, фича "DNS-дети" давно устарела.
/poige
>смысл в том, что при большой нагрузке и/или неоптимально выбранных значениях опции,
>может не хватить этих самых "DNS-детей" и тогда получим то, от
>чего пытались уйти.На то и админ, чтобы правильно выставлять такие параметры... да и не так уж и много их надо...
А вообще эти DNS-дети, имхо, имеют смысл в случае медленных или ненадежных DNS-серверов.
Например, когда у меня из-за ошибок в настройках время резолвинга составляло порядка 5 секунд, положение спасали именно 8 штук ДНС-детей, которые рабоотали параллельно. В итоге хоть и с тормозами, но инет смотреть можно было, а без детей были бы сплошные тайм-ауты...>Так в том то и дело, что 2.5 и есть latest stable
>(на 2003-02), который замечательно работает с внутренним резолвером, а тот, в
>свою очередь, реализует общение с DNS-серверами самостоятельно, используя очереди, без каких-либо
>блокировок... В общем, как я понял, фича "DNS-дети" давно устарела.
Не совсем согласен, я бы сказал, что ее не обязательно применять, если имеется быстрый канал и надежный родительский ДНС.
как гриться, что ел, что радио слушал...
>как гриться, что ел, что радио слушал...подчеркиваю - все сказанное мной есть мое имхо и не претендует на 100% полноту и достоверность.
а если у тебя будет возможность, изложи свою точку зрения, плиз, более развернуто.
>Кто подскажет как максимально увеличить сабж?
>Машинка на которой крутится сквид П3-1000/2Gb Ram/Винты SCSi/Кэш на отдельном винте.
>При подключении мимо сквида скорость значительно выше!
Примерно тоже - Cel-733/512Ram/4Gb SCSI. Через сквид медленне! %-\http_port 3128
cache_mem 256 MB
cache_swap_low 95
cache_swap_high 99
maximum_object_size 10240 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 12 KB
ipcache_size 1024
ipcache_low 95
ipcache_high 99
fqdncache_size 1024
cache_replacement_policy heap GDSF
memory_replacement_policy heap LFUDAcache_dir diskd /usr/local/squid/var/cache 3700 16 256
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none
emulate_httpd_log off
mime_table /usr/local/squid/etc/mime.conf
log_mime_hdrs off
pid_filename /var/run/squid.pid
log_fqdn off
client_netmask 255.255.255.255ftp_user user@chbs.ru
ftp_list_width 64
ftp_passive on
ftp_sanitycheck off
dns_children 2 # <- прекрасно справляются, т.к. всего 20 клиентов max
dns_defnames on
redirect_rewrites_host_header offrequest_header_max_size 4 KB
request_body_max_size 0 KB
refresh_pattern ^ftp: &n... 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
quick_abort_pct 95
negative_ttl 5 minutes
positive_dns_ttl 6 hours
negative_dns_ttl 10 minutesconnect_timeout 2 minutes
peer_connect_timeout 30 seconds
read_timeout 5 minutes
request_timeout 5 minutes
persistent_request_timeout 2 minute
client_lifetime 1 day
half_closed_clients on
pconn_timeout 180 seconds
shutdown_lifetime 30 secondshttpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onlogfile_rotate 4
memory_pools off
forwarded_for on
log_icp_queries off
store_avg_object_size 10 KB
buffered_logs off
icon_directory /usr/local/squid/share/icons
error_directory /usr/local/squid/share/errors/Russian-1251
minimum_retry_timeout 15 seconds
max_open_disk_fds 0
offline_mode off
uri_whitespace encode
nonhierarchical_direct off
prefer_direct off
strip_query_terms on
coredump_dir none
ignore_unknown_nameservers off
client_persistent_connections on
server_persistent_connections on
pipeline_prefetch off
store_dir_select_algorithm least-load
ie_refresh on
vary_ignore_expire on
>Примерно тоже - Cel-733/512Ram/4Gb SCSI. Через сквид медленне! %-\
неплохо бы хотя бы на 800-й celeron или PIII заменить, т.е. чтобы шина была хотя бы 100 МГц, сквид любит память побыстрее... да и винт 4Gb SCSI не самый быстрый... имхо, современные IDE-шники побыстрее...
но это все не особо критично...>cache_mem 256 MB
уверен, что сквид может получить столько памяти? в своп система ничего не скидывает?>cache_swap_low 95
>cache_swap_high 99
не многовато ли? чем не устраивали значения по умолчанию 90 и 95?>maximum_object_size_in_memory 12 KB
можно и побольше немного сделать...>cache_replacement_policy heap GDSF
>memory_replacement_policy heap LFUDA
>cache_dir diskd /usr/local/squid/var/cache 3700 16 256
у тебя на всю систему и индексы кэша остается всего 300 Мб!!!
имхо, как бы ты не урезал систему, но ставить больше 3000 нереально.
и очень желательно под кэш свой раздел создать...
а компилил с разрешением diskd?
проверь, процесс diskd запущен?да и unlinkd не мешало бы прикрутить...
>dns_children 2 # <- прекрасно справляются, т.к. всего 20 клиентов max
а где указание внешнего dnsserver-а?
и при компиляциие указал, что использовать именно внешний? по умолчанию используется внутренний и указание dns_children теряет смысл...
кроме того, 2 - это мало! а если на одной странице много объектов с разным URL-ами?
у меня на 5-ти пользователях реально используется до 4-5 чилдренов
>>Примерно тоже - Cel-733/512Ram/4Gb SCSI. Через сквид медленне! %-\
>неплохо бы хотя бы на 800-й celeron или PIII заменить, т.е. чтобы
>шина была хотя бы 100 МГц, сквид любит память побыстрее... да
>и винт 4Gb SCSI не самый быстрый... имхо, современные IDE-шники побыстрее...
>память - 133 МГц. Остальное - мало рояля играет ...
>но это все не особо критично...
>
>>cache_mem 256 MB
>уверен, что сквид может получить столько памяти? в своп система ничего не
>скидывает?Однозначно. Длительно мониторил это - в кэш вообще ничего не кидается. Да и оставшихся 256М должно хватить (на тачке только сквид фурычит)
>
>>cache_swap_low 95
>>cache_swap_high 99
>не многовато ли? чем не устраивали значения по умолчанию 90 и 95?
>А почему бы и нет?
>
>>maximum_object_size_in_memory 12 KB
>можно и побольше немного сделать...
>можно, но все ж похоже не в этом причина...
>>cache_replacement_policy heap GDSF
>>memory_replacement_policy heap LFUDA
>
>
>>cache_dir diskd /usr/local/squid/var/cache 3700 16 256
>у тебя на всю систему и индексы кэша остается всего 300 Мб!!!
>
>имхо, как бы ты не урезал систему, но ставить больше 3000 нереально.
>Э нет. Система - на отдельном раиде, а 300М под индексы хватить должно.
Под сквид не просто отдельный раздел выделен, а целый винт на 4 Гб.Более того, тормоза начинаются с пустого кэше (что можно объяснить) и продолжаются даже при кеше размером в 1,5 Гб! При этом примерно 10-15% хитов в логах.
>и очень желательно под кэш свой раздел создать...
>а компилил с разрешением diskd?
>проверь, процесс diskd запущен?
>
>да и unlinkd не мешало бы прикрутить...Конечно. diskd и unlinkd юзаются вовсю
>
>>dns_children 2 # <- прекрасно справляются, т.к. всего 20 клиентов max
>а где указание внешнего dnsserver-а?да запущен он. Он по умолчанию прописан (см. squid.conf.default):
# TAG: cache_dns_program
# Specify the location of the executable for dnslookup process.
#
#Default:
# cache_dns_program /usr/local/squid/libexec/dnsserver>и при компиляциие указал, что использовать именно внешний? по умолчанию используется внутренний
./configure --enable-dlmalloc --enable-gnuregex --with-pthreads --with-dl --enable-storeio=diskd,ufs --enable-removal-policies="heap,lru" --enable-delay-pools --enable-kill-parent-hack --enable-cachemgr-hostname=cache.chbs.ru --enable-ssl --with-openssl --enable-default-err-language=Russian-1251 --disable-http-violations --disable-internal-dns --enable-underscores --enable-x-accelerator-vary
--disable-internal-dns - ведь так?
>и указание dns_children теряет смысл...
>кроме того, 2 - это мало! а если на одной странице много
>объектов с разны%
>>Примерно тоже - Cel-733/512Ram/4Gb SCSI. Через сквид медленне! %-\
>неплохо бы хотя бы на 800-й celeron или PIII заменить, т.е. чтобы
>шина была хотя бы 100 МГц, сквид любит память побыстрее... да
>и винт 4Gb SCSI не самый быстрый... имхо, современные IDE-шники побыстрее...
>память - 133 МГц. Остальное - мало рояля играет ...
>но это все не особо критично...
>
>>cache_mem 256 MB
>уверен, что сквид может получить столько памяти? в своп система ничего не
>скидывает?Однозначно. Длительно мониторил это - в кэш вообще ничего не кидается. Да и оставшихся 256М должно хватить (на тачке только сквид фурычит)
>
>>cache_swap_low 95
>>cache_swap_high 99
>не многовато ли? чем не устраивали значения по умолчанию 90 и 95?
>А почему бы и нет?
>
>>maximum_object_size_in_memory 12 KB
>можно и побольше немного сделать...
>можно, но все ж похоже не в этом причина...
>>cache_replacement_policy heap GDSF
>>memory_replacement_policy heap LFUDA
>
>
>>cache_dir diskd /usr/local/squid/var/cache 3700 16 256
>у тебя на всю систему и индексы кэша остается всего 300 Мб!!!
>
>имхо, как бы ты не урезал систему, но ставить больше 3000 нереально.
>Э нет. Система - на отдельном раиде, а 300М под индексы хватить должно.
Под сквид не просто отдельный раздел выделен, а целый винт на 4 Гб.Более того, тормоза начинаются с пустого кэше (что можно объяснить) и продолжаются даже при кеше размером в 1,5 Гб! При этом примерно 10-15% хитов в логах.
>и очень желательно под кэш свой раздел создать...
>а компилил с разрешением diskd?
>проверь, процесс diskd запущен?
>
>да и unlinkd не мешало бы прикрутить...Конечно. diskd и unlinkd юзаются вовсю
>
>>dns_children 2 # <- прекрасно справляются, т.к. всего 20 клиентов max
>а где указание внешнего dnsserver-а?да запущен он. Он по умолчанию прописан (см. squid.conf.default):
# TAG: cache_dns_program
# Specify the location of the executable for dnslookup process.
#
#Default:
# cache_dns_program /usr/local/squid/libexec/dnsserver>и при компиляциие указал, что использовать именно внешний? по умолчанию используется внутренний
./configure --enable-dlmalloc --enable-gnuregex --with-pthreads --with-dl --enable-storeio=diskd,ufs --enable-removal-policies="heap,lru" --enable-delay-pools --enable-kill-parent-hack --enable-cachemgr-hostname=cache.chbs.ru --enable-ssl --with-openssl --enable-default-err-language=Russian-1251 --disable-http-violations --disable-internal-dns --enable-underscores --enable-x-accelerator-vary
--disable-internal-dns - ведь так?
>и указание dns_children теряет смысл...
>кроме того, 2 - это мало! а если на одной странице много
>объектов с разным URL-ами?
>у меня на 5-ти пользователях реально используется до 4-5 чилдреновМожет быть, попробую. Хотя при монопольном использовании сервера (мною ради теста) и загрузке plain-text страницы (т.е. без флешек, картинок и прочей муры) под 100Кб (что разница ощущалась) тормоза видны. Без сквида - нет проблем.
...вот еще:
иногда в логах попадается TCP_SWAPFAIL_MISS, хотя винт рабочий (проверено) и с диском никто активно не работает (разве что сам сквид :)Кстати, интересна вообще причина появления подобного (не то, что это значит, а почему?...)
Попробовал dns_child 5, и даже 10 - все равно тормоза.
Что ж это за задница-то, а.....
>Попробовал dns_child 5, и даже 10 - все равно тормоза.
>Что ж это за задница-то, а.....надо копать...
попробуй вместо (именно вместо!) текущего кэша задать маленький, например 10 Мб, кэш на другом физическом диске/рейде, запусти squid -z, потом squid. попробуй поработать с таким кэшем.
возможно, дело в политиках кэширования, попробуй lru, например...
места на всех разделах хватает? а инодов? файловую систему на диске с кэшем проверял?
почитай тайминги в cachmgr, на что тратится много времени?
..и конечно, как усегда, ларчик сравнительно просто открывался.Все дело было в
digest_generation on
pipeline_prefetch off
что ставиться по умолчанию. Сменил на обратные значения - и получил выигрыш - те самые 15%. Т.е. ща что через сквид, что мимо - фиолетово одинаково :)
Посмотрим, как это на большой загрузке сработает (ща юзеров включать буду :))))З.Ы. Попутно выяснилось, что увеличение redirect_child с 5 до 10, вариации с политикой кешей и прочей лабудой ощутимо не сказываются на производительности. Зато как долго ковырялся..... %-/
>..и конечно, как усегда, ларчик сравнительно просто открывался.
>
>Все дело было в
>digest_generation on
>pipeline_prefetch off
>что ставиться по умолчанию. Сменил на обратные значения - и получил выигрыш
>- те самые 15%. Т.е. ща что через сквид, что мимо
>- фиолетово одинаково :)кхм. Точно? А не пробовал, что-нть одно из двух? Например, только pipeline?
/poige
>кхм. Точно? А не пробовал, что-нть одно из двух? Например, только pipeline?
>Пробовал.
Прирост дает и то, и другое. Но digest (субъективно) - больше.