Страница 1 из 1

Squid кеширование Kerberos Авторизации

Добавлено: 2015-04-27 9:38:25
Чистый
Добрый день, есть настроеный Squid c Kerberos авторизацией через AD. Но вот вылезла проблема, что при большом количестве пользователей (200) идет очень большая нагрузка на CPU:
squid_idle.png
без авторизации
До 9 утра просто отсутствуют пользователи, рабочий день не начался, когда отключаю авторизацию, то нагрузка сразу пропадает:
squid.png
с авторизацией
По графику видно как в 9:24 я отключил авторизацию. Возможно ли как-то кеширировать авторизацию или затинюнговать ее что бы снизить нагрузку на процессор. Вариант отключить авторизацию не хорошо и вариант с Basic авторизации тоже не очень нравится. Хочется все же оставить kerberos. Cпасибо.

squid 3.5.3 (пробовал 3.3.13 нагрузка так же большая на процессор, 3.4.8 вовсе плохо себя ведет при пользователя больше 30)
ключи сборки:
configure options: '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=/usr/include' '--mandir=/usr/share/man' '--datadir=/usr/share/squid' '--infodir=/usr/share/info' '--bindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--localstatedir=/var' '--sysconfdir=/etc/squid' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,POP3,RADIUS,SASL,SMB' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,SQL_session,unix_group,wbinfo_group' '--enable-auth-digest=file,LDAP' '--enable-removal-policies=lru,heap' '--enable-inline' '-enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-zph-qos' '--with-swapdir=/var/spool/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=squid' '--enable-linux-netfilter' '--enable-ltdl-convenience' '--srcdir=.' '--disable-mainteiner-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--with-logdir=/var/log/squid' '--enable-auth' '--enable-epoll' '--enable-ident-lookups' '--enable-snmp' '--enable-wccpv2' '--enable-ssl' '--enable-ssl-crtd' '--enable-icmp' '--with-aio' '--with-dl' '--with-openssl' '--with-pthreads' '--with-included-ltdl' '--disable-arch-native' '--without-nettle' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fPIC' 'build_alias=i686-linux-gnu'

Squid кеширование Kerberos Авторизации

Добавлено: 2015-04-28 7:48:53
kharkov_max
Где то читал что это косяк версии 3.5, а вот в 3.3 все нормально. В 3.5 похоже что хелпер полностью переписали

Squid кеширование Kerberos Авторизации

Добавлено: 2015-04-28 12:11:05
Чистый
у меня на версии squid 3.3.13 тоже большая нагрузка на процессор при kerberos авторизации.. Какая ветка 3 версии нормально работает с kerberos ?

Squid кеширование Kerberos Авторизации

Добавлено: 2015-04-29 12:06:32
Mox
Чистый писал(а):у меня на версии squid 3.3.13 тоже большая нагрузка на процессор при kerberos авторизации.. Какая ветка 3 версии нормально работает с kerberos ?
У меня и 3.5.3 нормально работает

Отправлено спустя 2 минуты 2 секунды:
Чистый писал(а):Добрый день, есть настроеный Squid c Kerberos авторизацией через AD. Но вот вылезла проблема, что при большом количестве пользователей (200) идет очень большая нагрузка на CPU:
squid_idle.png
До 9 утра просто отсутствуют пользователи, рабочий день не начался, когда отключаю авторизацию, то нагрузка сразу пропадает:
squid.png
По графику видно как в 9:24 я отключил авторизацию. Возможно ли как-то кеширировать авторизацию или затинюнговать ее что бы снизить нагрузку на процессор. Вариант отключить авторизацию не хорошо и вариант с Basic авторизации тоже не очень нравится. Хочется все же оставить kerberos. Cпасибо.

squid 3.5.3 (пробовал 3.3.13 нагрузка так же большая на процессор, 3.4.8 вовсе плохо себя ведет при пользователя больше 30)
ключи сборки:
configure options: '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=/usr/include' '--mandir=/usr/share/man' '--datadir=/usr/share/squid' '--infodir=/usr/share/info' '--bindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--localstatedir=/var' '--sysconfdir=/etc/squid' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,POP3,RADIUS,SASL,SMB' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,SQL_session,unix_group,wbinfo_group' '--enable-auth-digest=file,LDAP' '--enable-removal-policies=lru,heap' '--enable-inline' '-enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-zph-qos' '--with-swapdir=/var/spool/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=squid' '--enable-linux-netfilter' '--enable-ltdl-convenience' '--srcdir=.' '--disable-mainteiner-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--with-logdir=/var/log/squid' '--enable-auth' '--enable-epoll' '--enable-ident-lookups' '--enable-snmp' '--enable-wccpv2' '--enable-ssl' '--enable-ssl-crtd' '--enable-icmp' '--with-aio' '--with-dl' '--with-openssl' '--with-pthreads' '--with-included-ltdl' '--disable-arch-native' '--without-nettle' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fPIC' 'build_alias=i686-linux-gnu'
Конфиг-то свой покажите

Squid кеширование Kerberos Авторизации

Добавлено: 2015-04-29 17:41:39
Mox
Да и что за сервер у вас?

Squid кеширование Kerberos Авторизации

Добавлено: 2015-05-01 16:09:22
Чистый
CentOS 6.6

Код: Выделить всё

visible_hostname squid
http_port 127.0.0.1:3128
http_port 192.168.1.65:3128
max_open_disk_fds 65536
max_filedesc 65536
httpd_suppress_version_string on
cache_mgr it@admin.com
icp_port 0
global_internal_static off
request_header_max_size 128 KB
reply_header_max_size 128 KB
buffered_logs on
negative_ttl 2 seconds
shutdown_lifetime 5 seconds
detect_broken_pconn on
half_closed_clients off
server_persistent_connections off
client_persistent_connections off
ignore_unknown_nameservers on
positive_dns_ttl 1 hour
negative_dns_ttl 30 seconds
dns_retransmit_interval 2 seconds
dns_timeout 20 seconds
check_hostnames on
uri_whitespace encode
allow_underscore off
relaxed_header_parser warn
forwarded_for delete
balance_on_multiple_ip off
connect_timeout 20 seconds
request_timeout 2 minutes
read_timeout 5 minutes
client_db on
coredump_dir /var/spool/squid
error_directory /usr/share/squid/errors/ru
error_default_language ru
include /etc/squid/auth.conf
include /etc/squid/acl.conf 
include /etc/squid/rejik.conf 
include /etc/squid/cache.conf 
include /etc/squid/delay.conf 
include /etc/squid/snmp.conf
auth.conf

Код: Выделить всё

#
# Kerberos
#
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -r -s HTTP/squid.com.loc@COM.LOC
auth_param negotiate children 100
auth_param negotiate keep_alive off
#
# BASIC
#
auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -P -R -b "dc=com,dc=loc" -D ldapreader@com.loc -W /etc/squid/ldappass.txt -f sAMAccountName=%s -h dc1.com.loc
auth_param basic children 30
auth_param basic realm "Proxy Authentication!"
auth_param basic credentialsttl 2 hours
cache.conf

Код: Выделить всё

cache_mem 2048 MB
maximum_object_size_in_memory 2048 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir ufs /mnt/squid-cache/ 22000 16 256
maximum_object_size 32768 KB
refresh_pattern \.bz2$          43200   100%    43200 
refresh_pattern \.exe$          43200   100%    43200 
refresh_pattern \.gif$          43200   100%    43200
refresh_pattern \.gz$           43200   100%    43200
refresh_pattern \.ico$          43200   100%    43200
refresh_pattern \.jpg$          43200   100%    43200
refresh_pattern \.mid$          43200   100%    43200
refresh_pattern \.mp3$          43200   100%    43200
refresh_pattern \.pdf$          43200   100%    43200
refresh_pattern \.swf$          43200   100%    43200
refresh_pattern \.tar$          43200   100%    43200
refresh_pattern \.tgz$          43200   100%    43200
refresh_pattern \.zip$          43200   100%    43200
refresh_pattern http://ad\.                        43200   100%    43200 
refresh_pattern http://ads\.                       43200   100%    43200
refresh_pattern http://adv\.                       43200   100%    43200
refresh_pattern http://click\.                     43200   100%    43200
refresh_pattern http://count\.                     43200   100%    43200
refresh_pattern http://counter\.                   43200   100%    43200
refresh_pattern http://engine\.                    43200   100%    43200
refresh_pattern http://img\.readme\.ru             43200   100%    43200
refresh_pattern http://userpic\.livejournal\.com   43200   100%    43200
refresh_pattern \.ru/bf-analyze                    43200   100%    43200
refresh_pattern \.ru/bf-si                         43200   100%    43200
refresh_pattern /advs/                             43200   100%    43200
refresh_pattern /banners/                          43200   100%    43200
refresh_pattern /cgi-bin/iframe/                   43200   100%    43200
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	80%	14400
думаю что др настройки врядли могут влиять на процессорное время.

Squid кеширование Kerberos Авторизации

Добавлено: 2015-05-04 11:13:14
Mox
А с чего вы взяли, что это "проблема"? Вы не думали, что так и должно быть?
Посмотрите в top кто ест проц

Squid кеширование Kerberos Авторизации

Добавлено: 2015-05-04 11:36:24
Чистый
Ну проц кушает как раз таки хелперы squid которые отвечают за kerberos авторизацию, в документации нашел что такую нагрузку может давать replay кеш:
squid doc писал(а): Kerberos can keep a replay cache to detect the reuse of Kerberos
tickets (usually only possible in a 5 minute window) . If squid is
under high load with Negotiate(Kerberos) proxy authentication requests
the replay cache checks can create high CPU load. If the environment
does not require high security the replay cache check can be disabled
for MIT based Kerberos implementations by adding the following to the
startup script

KRB5RCACHETYPE=none export KRB5RCACHETYPE
На дня попробую данную опцию и посмотрю как это будет влиять на CPU.

Squid кеширование Kerberos Авторизации

Добавлено: 2015-07-23 21:05:23
Чистый
Пусть и слишком долго, но все же, выше описанная мною опция решило полностью проблему. Спасибо всем.

Squid кеширование Kerberos Авторизации

Добавлено: 2018-06-21 15:56:34
Павел
Подскажи куда и в какаю строку ты добавил krb5rcachetype=none export krb5rcachetype ???

Squid кеширование Kerberos Авторизации

Добавлено: 2018-06-22 9:26:42
skeletor
Я добавил в /usr/local/etc/rc.d/squid сразу после

Код: Выделить всё

rcvar=squid_enable
Минус - при обновлении squid'a нужно добавлять эту строку заново. Возможно, правильнее добавить в другое место, но я не нашёл куда.