LINUX.ORG.RU
ФорумAdmin

Проблема со Squid-ом :(


0

0

Привет всем.

Имеется контора на 150 робочих мест, канал 4 мегобита. На роутере под управлением Gentoo, ядро hardened-2.6.17-r1, стоит Squid-2.6.9 работающий как прозрачный прокси.

Проблема заключается в том, что инет через Squid работает намного медленее чем через обычный форвардинг. Если без прокси сайт грузится за сек 3-5, то через прокси, за 20-40. Не могу понять в чем проблема, уже 2-е суток колупаюсь :(. Может сквид так и должен работать при трафике в 4 мегобит ? На серваке 4G оперативки. Сервер не хиленький, Pentium Dual Core 2.8Gz.

squid.conf:

http_port 2223 transparent
icp_port 0
hierarchy_stoplist cgi-bin ? mail chat
acl QUERY urlpath_regex cgi-bin \? mail icq
no_cache deny QUERY
visible_hostname office.freemedia.biz
auth_param basic program /usr/libexec/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 3
auth_param basic realm Access Proxy Server
forwarded_for off
cache_mem 2048 MB
cache_swap_low 900 MB
cache_swap_high 2000 MB
cache_dir diskd /var/cache/squid 2048 16 256
cache_access_log /var/log/squid/access.log
maximum_object_size 700 KB
minimum_object_size 0 KB
ftp_user anonymous@
logfile_rotate 10
acl BadFiles urlpath_regex -i "/etc/squid/bad.files"
acl outside_ip src xxx.xxx.xxx.0/24 xxx.xxx.xxx.xxx
acl outside_usr proxy_auth udjin REQUIRED
acl all src 0.0.0.0/0.0.0.0
acl allow_all src 192.168.0.101 192.168.0.168 192.168.0.8 192.168.0.222 127.0.0.1
acl our src 192.168.0.0/24 192.168.1.0/24 192.168.100.0/30
acl localhost src 127.0.0.1/255.255.255.255
acl allow_ports port 80
acl allow_proto proto HTTP HTTPS
acl CONNECT method CONNECT
acl manager proto cache_object
acl SSL_ports port 443 563

delay_pools 2
delay_class 1 1
delay_parameters 1 20000/20000
delay_access 1 allow all !allow_all !outside_ip
delay_access 1 deny all

delay_class 2 1
delay_access 2 allow allow_all outside_ip SSL_ports
delay_access 2 deny all
delay_parameters 2 -1/-1

http_access allow allow_all
http_access allow outside_ip outside_usr
http_access deny our !SSL_ports !allow_ports !allow_proto !outside_ip !outside_usr
http_access allow our
http_access deny all
error_directory /usr/share/squid/errors/Russian-1251
cache_mgr iron@freemedia.biz
cache_effective_user squid
cache_effective_group squid
buffered_logs on

bad.files:

\.mp3$
\.mpeg$
\.mpg$
\.avi$
\.wav$
\.wmv$
\.mov$

Трафик перенаправляется на порт squid правилом:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.0.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 2223

Лог cache.log:
2007/01/30 21:38:20| Starting Squid Cache version 2.6.STABLE9 for i686-pc-linux-gnu...
2007/01/30 21:38:20| Process ID 26996
2007/01/30 21:38:20| With 1024 file descriptors available
2007/01/30 21:38:20| Using epoll for the IO loop
2007/01/30 21:38:20| DNS Socket created at 0.0.0.0, port 32780, FD 5
2007/01/30 21:38:20| Adding domain local from /etc/resolv.conf
2007/01/30 21:38:20| Adding nameserver 127.0.0.1 from /etc/resolv.conf
2007/01/30 21:38:20| Adding nameserver 193.24.25.1 from /etc/resolv.conf
2007/01/30 21:38:20| Adding nameserver 212.109.32.5 from /etc/resolv.conf
2007/01/30 21:38:20| Adding nameserver 212.109.32.9 from /etc/resolv.conf
2007/01/30 21:38:20| Adding nameserver 193.24.25.250 from /etc/resolv.conf
2007/01/30 21:38:20| Adding nameserver 70.87.114.194 from /etc/resolv.conf
2007/01/30 21:38:20| helperOpenServers: Starting 3 'ncsa_auth' processes
2007/01/30 21:38:20| User-Agent logging is disabled.
2007/01/30 21:38:20| Referer logging is disabled.
2007/01/30 21:38:20| Unlinkd pipe opened on FD 13
2007/01/30 21:38:20| Swap maxSize 2097152 KB, estimated 161319 objects
2007/01/30 21:38:20| Target number of buckets: 8065
2007/01/30 21:38:20| Using 8192 Store buckets
2007/01/30 21:38:20| Max Mem size: 2097152 KB
2007/01/30 21:38:20| Max Swap size: 2097152 KB
2007/01/30 21:38:20| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2007/01/30 21:38:20| Rebuilding storage in /var/cache/squid (CLEAN)
2007/01/30 21:38:20| Using Least Load store dir selection
2007/01/30 21:38:20| Current Directory is /var/log/squid
2007/01/30 21:38:20| Loaded Icons.
2007/01/30 21:38:20| Accepting transparently proxied HTTP connections at 0.0.0.0, port 2223, FD 16.
2007/01/30 21:38:20| HTCP Disabled.
2007/01/30 21:38:20| WCCP Disabled.
2007/01/30 21:38:20| Ready to serve requests.
2007/01/30 21:38:20| Store rebuilding is 16.6% complete
2007/01/30 21:38:20| Done reading /var/cache/squid swaplog (24620 entries)
2007/01/30 21:38:20| Finished rebuilding storage from disk.
2007/01/30 21:38:20| 24620 Entries scanned
2007/01/30 21:38:20| 0 Invalid entries.
2007/01/30 21:38:20| 0 With invalid flags.
2007/01/30 21:38:20| 24620 Objects loaded.
2007/01/30 21:38:20| 0 Objects expired.
2007/01/30 21:38:20| 0 Objects cancelled.
2007/01/30 21:38:20| 0 Duplicate URLs purged.
2007/01/30 21:38:20| 0 Swapfile clashes avoided.
2007/01/30 21:38:20| Took 0.6 seconds (44649.7 objects/sec).
2007/01/30 21:38:20| Beginning Validation Procedure
2007/01/30 21:38:20| Completed Validation Procedure
2007/01/30 21:38:20| Validated 24620 Entries
2007/01/30 21:38:20| store_swap_size = 303236k
2007/01/30 21:38:21| storeLateRelease: released 0 objects

Где искать проблему ?

★★★★★

Для 150 юзеров может стоит увеличить количество процессов авторизации с 3 до 10-20.

anonymous
()
Ответ на: комментарий от anonymous

>Для 150 юзеров может стоит увеличить количество процессов авторизации с 3 до 10-20.

Дело в том, что авторизация запрашивается только для юзеров outside, то есть которые подключаются с инета. Так что смысл в увеличении количества процессов авторизации, я не вижу.

iron ★★★★★
() автор топика

Смотри, когда пользователи ломятся в интернет, используя простой форвардинг, то опрашивается ДНС, который выставлен на пользовательских машинах. Тут у тебя, как я погляжу, ДНС-ов штук пять, причём ты не сказал, совпадают ли они. Может, какой-то ДНС подтормаживает? Плюс ты не сказал, закешированные странички тоже медленно отдаются?

Anoxemian ★★★★★
()

> Где искать проблему ?
Попробуйте отключить delay_pool-ы. Кстати, 2 pool по-моему вообще не нужен, т.к. ничего не ограничивает (все, кто не попал ни в один pool, тоже идут без ограничения скорости). pool N1 ограничивает всех попавших в него до 20kb/s. Если этих попавших много (в том числе и вы), то не трудно догадаться, что может произойти со скоростью.

spirit ★★★★★
()
Ответ на: комментарий от Anoxemian

> Тут у тебя, как я погляжу, ДНС-ов штук пять, причём ты не сказал

Да, совпадают с теми что в /etc/resolv.conf. Строку с ДНС-ами я прописал для теста. Вообще, она закоментирована. Первым долгом squid обращается к 127.0.0.1. На серваке 2 канала инета, и настроен мультихоуминг. Маршрут к каждому ДНС-у лежит через нужный ему канал.

>Плюс ты не сказал, закешированные странички тоже медленно отдаются?

Да.

>Кстати, 2 pool по-моему вообще не нужен, т.к. ничего не ограничивает

Точно. Спасибо.

>pool N1 ограничивает всех попавших в него до 20kb/s.

pool N1 ограничивает скорость на мультимедиа файлы *.mp3,*.avi и т.д. Все остальные файлы, отдаются с полной скоростью.

iron ★★★★★
() автор топика
Ответ на: комментарий от iron

>Плюс ты не сказал, закешированные странички тоже медленно отдаются?

Сорри. ответил не подумав. При запросе новой страницы, сервер думает сек 5-10 прежде чем выдать из кэша.

iron ★★★★★
() автор топика
Ответ на: комментарий от iron

> Сорри. ответил не подумав. При запросе новой страницы, сервер думает сек 5-10 прежде чем выдать из кэша.

hdparm, файловая система и т. д. Может надо на системном уровне присмотреться?

Anoxemian ★★★★★
()
Ответ на: комментарий от iron

> pool N1 ограничивает скорость на мультимедиа файлы *.mp3,*.avi и т.д.
> Все остальные файлы, отдаются с полной скоростью.

И из чего это следует ???
delay_access 1 allow all !allow_all !outside_ip
Т.е. в pool попадут все (all), чьи IP адреса не перечислены в acl-ях allow_all и outside_ip. Про mp3, avi, ... здесь ни слова.

spirit ★★★★★
()
Ответ на: комментарий от Anoxemian

> hdparm, файловая система и т. д. Может надо на системном уровне присмотреться?

# hdparm -t /dev/md3

/dev/md3:
 Timing buffered disk reads:  204 MB in  3.01 seconds =  67.72 MB/sec

>Т.е. в pool попадут все (all)

Точно !!! Я ошибся. Замесь all должно быть BadFiles ! При all весь 
трафик ограничивался до 20кб...


Всем огромное спасибо !

iron ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.