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

FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2009-12-17 7:13:28
skaaraje
Сервер с Bsd 8 , нормальный такой сервер, 4г мозга ецц, два ксеона двухголовых, два раптора на 10к рпм. Система установлена на raidz в котором оба раптора, установлен squid 2.7.7 - у него размер хранилища задан в 120 гиг. Спрашиваю cachemgr сколько занято - в ответ
Store Directory Statistics:
Store Entries : 930326
Maximum Swap Size : 125829120 KB
Current Store Swap Size: 119473024 KB
Current Capacity : 95% used, 5% free

делаю в консоли df -h
Filesystem Size Used Avail Capacity Mounted on
tank 137G 16G 121G 12% /
devfs 1.0K 1.0K 0B 100% /dev

на zpool list

NAME SIZE USED AVAIL CAP HEALTH ALTROOT
tank 278G 32,0G 246G 11% ONLINE -

на директорий хранилища
du -d1 -h

[speedup:cache]du -d1 -h
659M ./01
566M ./0C
661M ./0D
616M ./06
276M ./08
726M ./02
642M ./05
684M ./07
656M ./0E
311M ./0B
646M ./00
795M ./04
663M ./0F
273M ./0A
807M ./03
278M ./09
9,2G .

как это возможно? бред какой то. Кому верить - кешманагеру или системе?

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-01-24 15:41:37
pimlab
аналогичная фигня ..........
оказалось верно стало после

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

zfs set recordsize=2048 pool/squid_cache 

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-01-24 21:15:14
Soldier
Не оффтоп. не скромный вопрос - нафига использовать такую дырявую версию? Она еще сырая. даже очень. мало того терки с мпд и прочими пакетами, дык еще она не дает порты обновить (portsnap fetch, portsnap extract) - на последнем отстегнула харды, предварительно переписав fstab. Под спарком я вообще молчу. стоит - работает. как начнет в консоль какашки слать аж глаза разбегаются.

ИМХО, я бы еще остался на 7.0, 7.2 версии. В крайнем случае 6.2 или 6.4.
Причем 6.х даже при пересборке ядра для поддержки pf - сами создают в /etc файл pf.conf.
Делаем выводы.

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-01-25 6:58:26
Neus
Не оффтоп. не скромный вопрос - нафига использовать raidz на 2-х (!) винтах?!

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-01-25 20:15:27
Soldier
Не в укор топик стартеру и для самообразования, как будет распределение данных на дисках, примонтированных к одной дире?

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-03-22 11:36:37
gmn
skaaraje писал(а):Сервер с Bsd 8 , нормальный такой сервер, 4г мозга ецц, два ксеона двухголовых, два раптора на 10к рпм. Система установлена на raidz в котором оба раптора, установлен squid 2.7.7 - у него размер хранилища задан в 120 гиг.
Привет.
И как оно? Живет сейчас?

Решил у себя тоже поставить сквид на сервер под 8-кой amd64 с zfs.
Имеем сервер- 2 ядра 1.60GHz, 4 Гб ОЗУ.
На том же сервере раньше была 6.3 i386.
Сквид работал без проблем ... почти.
Из-а нехватки памяти для процесса рестартовал приблизительно 2 раза в три дня.

Решил внести новшества. Снес все с сервера. Установил 8-ку amd64. Видятся все 4 Гб ОЗУ, да и лимит памяти на процесс уже другой.
Сделал из двух винтов zpool.
На этом пуле кеш сквида и базы MySQL (из него сквид через external acl читает параметры доступа).

Что "тюнил":

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

vm.kmem_size="1024M"
vm.kmem_size_max="1024M"
vfs.zfs.arc_max="512M"
vfs.zfs.vdev.cache.size="5M"
vfs.zfs.prefetch_disable=0

net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0
net.inet.tcp.nolocaltimewait=1
kern.ipc.somaxconn=32768
kern.ipc.nmbclusters=65536
kern.ipc.maxsockets=204800
kern.maxfiles=256000
kern.maxfilesperproc=230400
kern.maxvnodes=200000
squid.conf

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

cache_mem 512 MB
cache_dir aufs /var/spool/squid/cache 10240 16 128
memory_pools off
В итоге все работает хорошо, но не долго :(
Сквид обслуживает порядка 300 запросов в секунду.
При этом LA не больше единицы.
И где-то через 3-4 дня, когда процесс сквида съедает в памяти порядка 2,7 Гб наблюдаю следующее.
Время обслуживания запросов вырастает до 1,5 секунд. Загрузка канала, естественно, падает.
Загрузка CPU сквидом растет. Через cachemgr в нормальном режиме загрузка cpu где-то 30-40%, то в этом "ступорном" режиме до 90%. LA при этом порядка 1,5.
Диски не загружены. Swap не используется.
Помогает остановка сквида и повторный запуск.

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

Может кто что посоветует?
Я думаю, что сквид тормозит, когда его объем в ОЗУ переваливает за какой-то размер ( например 2,5 Гб).
Так как после этого он начинает "кушать" cpu больше и тормозить. Загруженность zpool-а такая же, как и при нормальной работе.

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-03-22 21:58:24
iZEN
Оставить:

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

vfs.zfs.prefetch_disable=0
в /boot/loader.conf. Остальное — убрать.

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-03-23 10:07:49
gmn
iZEN писал(а):Оставить:

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

vfs.zfs.prefetch_disable=0
в /boot/loader.conf. Остальное — убрать.
Какие аргументы?

Я руководствовался тем, что система выдает варнинг:

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

ZFS WARNING: Recommended minimum kmem_size is 512MB; expect unstable behavior.
Consider tuning vm.kmem_size and vm.kmem_size_max
И еще доки по zfs на сайте sun, и http://wiki.freebsd.org/ZFSTuningGuide

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-03-25 18:53:19
gmn
Привет.
Вопросам к знатокам.

Какого ... сквид начинает тормозить?

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

CPU: 47.6% user,  0.0% nice, 10.7% system,  0.2% interrupt, 41.6% idle
Mem: 2528M Active, 352M Inact, 930M Wired, 101M Cache, 418M Buf, 32M Free
Swap: 4095M Total, 216M Used, 3878M Free, 5% Inuse

  PID USERNAME  THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
80007 squid      17  44    0  2774M  2409M ucond   0 636:17 65.77% squid
29147 mysql      29  44    0 85512K 31600K ucond   1 129:01  0.00% mysqld
  600 root        1  44    0  5820K   812K select  1 110:30  0.00% syslog-ng
  696 bind        5  44    0   138M 59784K kqread  1  63:16  0.00% named
squid.conf

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

cache_mem 350 MB
memory_pools off

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

client_http.requests = 191.042417/sec
client_http.all_median_svc_time = 1.311657 seconds
client_http.miss_median_svc_time = 1.542425 seconds
client_http.nm_median_svc_time = 0.321543 seconds
client_http.nh_median_svc_time = 0.898576 seconds
client_http.hit_median_svc_time = 0.723868 seconds
cpu_usage = 85.413378%
Up Time 105133.263 seconds
Перезапуск помогает. Но это не дело.

FreeBSD 8.0-RELEASE-p2
hw.model: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz
hw.ncpu: 2
hw.physmem: 4278001664
Два диска с zfs.
Скорость записи/чтения через dd порядка 50 Мб/сек.

Но тормоза, скорее всего, связаны именно с тем, что сквид вынуждает ОС свопиться.
Сколько же сквиду памяти надо?

Лучше бы он перезапускался каждый день, как это делал на i386 до перехода на bsd8 amd64 на этом же железе. :(

Урезать еще cache_mem?
Отключить вообще кеш?

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-04-02 18:35:01
skaaraje
продолжение начинается,
теперь серв это
интел 2.66 на 4 ведра
8 га мозгов
5 рапторов на 10тыр рпм
сегодня простым zfs snapshot перелил то что было на новый серв, райд аппаратный не стал делать, хоть и есть он - все в zfs без всяких райдов, просто в один пул собраны 5 рапторов ( могло быть6 но силиконовский контролер не определился)
насчет portsnap fetch update - все нормально прошло!
ведро пока вернул GENERIC т.к. железо другое, система ставилась на просто серв с просто двумя двухведерными ксеонами и 4 га мозга но с мамахеном intel serverworks
насчет падений сквида - при примерно 1000 запросов/сек ничего не падало, все падения были при rebuild storage имха от нехватки скорости винтов ( два раптора ), кто то спрашивал про это в аське - как раз на тот момент свалилась убунта на десктопе ;) , трафик на серв планируется в пределах 200мбит, сторидж примерно гиг 200-300
(суммарный траф юзеров в сутки около терабайта, но гонять всякую фигню по каналам связи, которые в моей местности ой как дороги, как то жаба давит! сквид станет не для экономии трафика а для ускорения юзерского инета)
ЗЫ. да кстати - насчет raidz я жестоко прогнал, тормозит безбожно, райдз прожил три дня, потом был сделан обычный пулл зфс из двух рапторов а потом к ним добавлен третий, gstat показало что нагрузка на винты распределяется достаточно равномерно, как оно там пишется мне неинтересно - работает...

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-04-07 18:13:51
gmn
Ну у меня в плане железа не такая навороченная конфигурация ...
Но заработал сквид на BSD 8 с кешем на zfs.
Но чтобы скорость нормальной стала сделал:

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

vfs.zfs.prefetch_disable=0
И убрал у сквида основной пожиратель памяти - внешний процесс, который чекал PATH.
Всеравно там мало записей было ...
И в итоге сквид укладывается в 2 Гб ОЗУ. И так держится уже неделю - значит можно докручивать параметры.
Сейчас такие параметры:

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

cache_mem 700 MB
cache_dir aufs /var/spool/squid/cache 4096 16 256
Для zfs, где кеш, установил:

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

recordsize=2К

Re: FreeBSD 8 + Squid + ZFS = бред какой то

Добавлено: 2010-08-05 6:59:50
skaaraje
чего то с отпуска вышел и новый прикол -

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


2010/08/05 09:56:21| Accepting ICP messages at 0.0.0.0, port 3130, FD 175.
2010/08/05 09:56:21| Accepting SNMP messages on port 3440, FD 176.
2010/08/05 09:56:21| Ready to serve requests.
2010/08/05 09:56:24| Store rebuilding is  0.8% complete
2010/08/05 09:56:39| Store rebuilding is 159.1% complete
2010/08/05 09:56:54| Store rebuilding is 248.3% complete
2010/08/05 09:57:09| Store rebuilding is 352.8% complete
2010/08/05 09:57:24| Store rebuilding is 427.7% complete
2010/08/05 09:57:39| Store rebuilding is 510.3% complete
2010/08/05 09:57:54| Store rebuilding is 580.9% complete
2010/08/05 09:58:09| Store rebuilding is 651.7% complete
2010/08/05 09:58:24| Store rebuilding is 709.5% complete

и так до 4000 и более процентов без остановки, что бы это значило? кто нить сталкивался? кэш пересоздавать не хочецца, он уже как раз за месяц урегулировался на то что нужно юзверям