Benchmark хостинга

Sergey A. Shepelev l4igem2 at list.ru
Wed Jan 17 03:41:10 MSK 2007


	Привет.

	Посоветуйте, пожалуйста, команды, утилиты для
"бенчмаркинга" хостинга (nginx front/nginx+php_fastcgi/mysql).
После года разнообразного гемора при поднятии хостинга с нуля,
с почти нулевыми начальными знаниями накопилось желание
настроить один раз, качественно и хорошо. Поэтому хочется
"протвикать" всевозможные настройки ОС, софта.

	Железо:
Xeon 686 3.0GHz (с Hyper-Threading) 1 Гб памяти
	Есть такие строчки в dmesg.boot с ошибкой:
atapci1: <Intel 6300ESB SATA150 controller> port 0x...
atapci1: failed to enable memory mapping!
	Не знаю, насколько это плохо на уровне ядра, вообще
memory mapping файлов иногда удобен и полезен.
	ОС:
FreeBSD 6.0 (в ближайшие месяц-два планируется апгрейд до 6.2)
	Софт: ipfw, bind 9.3.1, proftpd 1.3.0rc2, sshd
(родной open, не ssh2 от ssh.com), nginx, php 5.1.6 with
Suhosin-Patch 0.9.6 cgi-fastcgi, mysql 4.1.13 portbld-freebsd6.0.

	На хостинге 3 внешних адреса, полтора десятка сайтов с
размером статики меньше 50Мб и базы меньше 1Мб. Есть, правда,
два сайта с статикой под гиг и базой под 70Мб, и посещаемость
порядка 1000 страниц в сутки.

	Настраивается один nginx на внешний адрес, множество
nginx-ов в паре с php по fastcgi. Для всех виртуальных хостов
выделяется отдельный ip вида 10.0.0.xx, на котором на 80 порту
отвечает бэкенд nginx, на 8443 - php-fastcgi. Два уровня
вебсерверов для разграничения uid/gid. Планируется, но пока не
настроен кэш динамики php (eAccelerator, Zend Optimizer и иже с
ними). Кстати, в этом разделе поправьте, если я где-то
некорректно продумал архитектуру хостинга. Запуск php
осуществляется с помощью скрипта во вложении (хотел через
spawn-fcgi от lighttpd, но пока не подружились). Запуск nginx с
помощью FreeBSD механизма rc.

	Я умею в общем-то только смотреть по top сколько
процентов user/sys проца и памяти жрет процесс. Еще вот в
рассылке прочел про удобные netstat -m и iostat, хотя с первым
не всё совсем ясно. Конечно, я могу набросать скрипт типа

for (i<x;i++) {
  for (j<y;j++) {
    wget http://site.com/index.php
    sleep(sy)
  }
  sleep(sx)
}

	но, я уверен, что есть более сложные и продвинутые
решения для оценки производительность сайта. Пожалуйста,
поделитесь знаниями. Интересно, в первую очередь, способ
определить насколько эффективны в данный момент настройки размера
буферов, макс. количества конектов и т.п. в nginx, настройки
кэша в mysql, настройки sysctl (текущие во вложении).

	Заранее спасибо.

	P.S.: в sysctl kern.msgbuf видно сообщения об упавшем в
кордамп httpd, это временное решение. Прямо сейчас работает
nginx-фронтэнд, причем настроенный "по-дефолту", лишь бы
работало и апач 2.2.3 mod_php бэкенд, без realip. Часть сайтов
уже перенесена на fastcgi, поэтому там в kern.msgbuf и
php-fastcgi тоже сыпется в кордамп.

-- 
Sergey A. Shepelev <l4igem2 at list.ru>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: spawnphp.sh
Type: text/x-sh
Size: 274 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070117/3a8661d8/attachment.sh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sysctl.kern.txt
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070117/3a8661d8/attachment.txt>


More information about the nginx-ru mailing list