blog. mult edition

Тесты производительности: nginx, cherokee, lighttpd

Закончил тестировать производительность трех вышеперечисленных веб-серверов для раздачи статики. Это часть моих экспериментов по исследованию работы кэширующего распределенного кластера. Ставлю разные веб-сервера, сравниваю настройки, производительность и всякое такое.

Сегодняшний стенд — мой домашний роутер:

CPU: Intel(R) Pentium(R) 4 CPU 2.66GHz (2666.78-MHz 686-class CPU)
real memory = 1073741824 (1024 MB)
D-Link DGE-530T Gigabit Ethernet
FreeBSD hasp.vzletka.net 8.1-STABLE FreeBSD i386

Проверяю достаточно стандартным средством:
mult@multop:~$ ab -c 190 -n 50000 192.168.1.254:80/error404.jpg

Понеслось:
Server Software: lighttpd/1.4.29
Server Hostname: 192.168.1.254
Server Port: 80
Document Path: /error404.jpg
Document Length: 22830 bytes
Concurrency Level: 190
Time taken for tests: 118,479 seconds
Requests per second: 423,896 [#/sec] (mean)
Transfer rate: 9548,873 [Kbytes/sec] received

далее,

Server Software: Cherokee/1.2.2
Server Hostname: 192.168.1.254
Server Port: 81
Document Path: /error404.jpg
Document Length: 22830 bytes
Concurrency Level: 190
Time taken for tests: 120,629 seconds
Requests per second: 415,11 [#/sec] (mean)
Transfer rate: 9336,393 [Kbytes/sec] received

и наконец третий участник:

Server Software: nginx/1.0.8
Server Hostname: 192.168.1.254
Server Port: 82
Document Path: /error404.jpg
Document Length: 22830 bytes
Concurrency Level: 190
Time taken for tests: 121,489 seconds
Requests per second: 412,483 [#/sec] (mean)
Transfer rate: 9282,033 [Kbytes/sec] received

Небольшое замечание: самую большую нагрузку на процессор создал Cherokee. Все три веб-сервера запущены на одной машине. Тесты запускал несколько раз по очереди. Больших различий в результатах небыло.

Надо было бы еще Apache попробовать, но вряд ли бы результаты у него были хорошими, да и прожорливый он очень. К тому же, он не позиционируется как реверс-прокси или кеширующий веб-сервер — поэтому в моем тестировании web-серверов он не учавствовал. Еще не измерял скорость php-скриптов, потому что это было бы скоростью исполнения самого php.

Все три веб-сервера поддерживают кеширование и проксирование с распределением нагрузки между backend’ами. Все три имеют вменяемые конфиги. Может nGinx и показал бы самые высокие результаты, но его надо уметь готовить. А из коробки все вот так как есть. Будут еще интересные результаты — обязательно поделюсь.

Ну и напоследок:

Зарабатывая неплохо трудно накопить на собственное жилье без помощи. Но есть такая штука как квартира в кредит — купил сейчас, живешь сейчас, а платишь потом. Главное силы свои рассчитать.

Немецкие авто очень надежные, но даже им требуется обслуживание. Но мы уже знаем где сделать ремонт двигателя фольксваген из интернета. Ездите и не ломайтесь.

Роутинг с помощью PF на FreeBSD

Последнее время занимался не только облаками на Xen Cloud Platform, но и регистрацией своей автономной системы (AS) и приобритением пула адресов (купил /23 сеть). Все бы хорошо, но вышестоящий провайдер — Мультима — что-то тянет время и уже неделю как не может мне предоставить все что надо для установки bgp-сессии и начала анонсирования своей сетки.

Но перед этим прокачал скилл владения фаерволом PF на FreeBSD. Поясню.

Организация сети у меня в организации непростая и я использую двух провайдеров для доступа в интернет. Одна сеть (размером /25) принадлежит одному провайдеру и пускать ее наружу через второго — Мультиму — никто не будет. Однако анонсировать свою новую сеть буду через эту самую Мультиму, поэтому дефаулт шлюз будет именно туда.

Роутить по источнику FreeBSD не умеет, а вот заворачивать трафик умеет PF, поэтому меня спасло вот такие кренделя:

pass out quick on $ext0_if route-to ($tun0_if $tun0_gw) inet proto { tcp, udp, icmp, 41, gre } from $mini_lan to !(self) keep state
pass in quick on $tun0_if reply-to ($tun0_if $tun0_gw)
pass in quick on $ext0_if reply-to ($ext0_if $ext0_gw)

где $ext0_if смотрит в мультиму, $tun0_if — до второго провайдера, о шлюзах догадались уже сами, $mini_lan — та самая маленькая, /25 сетка.

Буду рад, если это кому-нибудь пригодиться.

PS. Все-таки по анализу pftop работает другое правило:

pass in quick on $int0_if route-to ($tun0_if $tun0_gw) inet proto { tcp, udp, icmp, 41, gre } from $mini_lan to !(self) keep state

Ну и напоследок:

Начинается осень, поэтому пора уже заканчивать с ремонтами и перепланировками. Те, кто еще не купил двери межкомнатные, то самое время их выбрать и купить. Не ошибитесь с выбором!

Уважаемые Украинцы которые еще не выучили международный язык и живущие в Киеве — отличная возможность это исправить и записаться на английский позняки и освоить этот несложный иностранный язык.

ZFS и комьюнити

И то, и другое — просто здорово. Для кого-то, кто сталкивался с этими двумя сущностями (вместе или по раздельности) — это очевидно, для других пока еще нет. Попробую прояснить ситуацию по обоим позициям.

Не так давно, а если быть точнее — в начале этой недели, у меня был переезд моего серверного хозяйства. Много — не много, а полстойки барахла набралось. Барахло обычное — серверы, бесперебойники, дисковые полки. Переезд как переезд — выключили, разобрали, привезли, собрали, включили. Включилось все, кроме одной из дисковых полок.

Дисковый конфиг той полки был прост: 4x500GB в аппаратном raid5, 4x2TB в raidz с помощью zfs, ОС — FreeBSD 8.2. Суть такова, что аппаратный raid5 (казалось бы, штука практически неубиваемая) взял да и развалился. Контроллер ни с того, ни с сего не увидел на первом контроллере вообще никаких раидов. Да, мол, 4 диска онлайн, сделать чего с ними?

Вот тут как раз и начинается соль. Чего делать — было непонятно. Восстановить RAID у меня не получилось, но вот на счет zpool я очень надеялся, что оно выживет. Спросил совета у комьюнити. В старом добром irc на канале #freebsd. Просветили, чуть шлепнув по подзатыльнику за незнание матчасти, после чего чуток погуглив, поставил чистую FreeBSD и импортировав zpool получил свой raidz живой, невредимый и с настроенными точками монтирования. Чудеса, да и только.

Чудеса, да и только — больше нервов потерял, да всхуднул малость. Люблю ZFS теперь больше и больше. Да, кто-то скажет, LVM тоже неплох — и я соглашусь — потому что это действительно так, но мне больше по душе ZFS. Осталось научиться ее разгонять и все будет отлично.

Ну и напоследок:

Если не платят зарплату, попали в ДТП, делите дом с кем-то, да и просто если хотите кому-то чего-то доказать на Украине, то юридические услуги киев просто необходимы как воздух.

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

Программное зеркало RAID1 в FreeBSD

Не ZFS’ом единым живы программные зеркала в FreeBSD. Даже больше — zfs достаточно специфичное решение, которое часто и не требуется, но не смотря на это, требуется сделать RAID1 программными средствами. Штатный инструмент в FreeBSD для этого — gmirror.

Пользоваться проще простого.

# sysctl kern.geom.debugflags=17
# gmirror label -vb round-robin gm0 /dev/ad4
Metadata value stored on /dev/ad4.
Done.
# gmirror load
# echo 'geom_mirror_load="YES"' >> /boot/loader.conf
# ee /etc/fstab

- тут меняем ad4 на gm0
# shutdown -r now
# gmirror insert gm0 /dev/ad8
# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad4
ad8 (92%)

- ждем когда Статус сменится на «COMPLETE» и все — система на програмном зеркале. Даже если умрет один из дисков — все будет не фатально. Меняем мертвый диск и вставляем его в наш массив:

# gmirror forget gm0
# gmirror insert gm0 /dev/ad8

Ну и наблюдаем в ‘gmirror status’ как оно ребилдится.

Ну и напоследок:
Иностранные языки полезны всегда, а вот английский — очень важен для програмистов и системных администраторов. Записываться на курсы английского надо только у проверенных временем школ. Не потеряйте время зря.

Курить вредно, пить тоже — это всем понятно и очевидно. А вот вокруг таких новых пристрастий как электронные сигареты разгораются всякие дисскуссии, что я даже и не знаю как к ним относиться. Но пробовать не хочется.

Backup данных в zfs с помощью snapshot/rollback

Резервировать данные надо всегда. Особенно, когда они важные и потеря сулит неприятностями. В одной из организаций использую файловую помойку, организованную с помощью freebsd+zfs+samba. Классический вариант с tar+gzip себя показал не очень эффективно, объемы большие (>150GB), упаковывается медленно, да и распаковывается в итоге, тоже небыстро. Под катом простое и эффективное решение.

Read the rest of this entry »

Next entries »

Страница 1 из 512345
Get Adobe Flash playerPlugin by wpburn.com wordpress themes
44 ‘запросов’. 0,312 ‘секунд’