Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev ][Date Next ][Thread Prev ][Thread Next ][Date Index ][Thread Index ]
Benchmark хостинг а
Привет.
Посоветуйте, пожалуйста, команды, утилиты для
"бенчмаркинга" хостинга (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@xxxxxxx>
#!/bin/sh
PHPFCGI="/usr/local/bin/php-cgi"
PHPCONFIG="/home/melodymaker/etc/php.ini"
FCGIPORT="3780"
FCGIADDR="10.0.37.15"
PHP_FCGI_CHILDREN=5
USERID=melodymaker
PHP_FCGI_MAX_REQUESTS=0
/usr/bin/su $USERID -c "$PHPFCGI -q -c $PHPCONFIG -b $FCGIADDR:$FCGIPORT & >
/dev/null"
kern.ostype: FreeBSD
kern.osrelease: 6.0-RELEASE
kern.osrevision: 199506
kern.version: FreeBSD 6.0-RELEASE #0: Wed Sep 28 01:46:39 MSD 2005
root@xxxxxxxxxxxx:/usr/obj/usr/src/sys/HEROSHI
kern.maxvnodes: 69985
kern.maxproc: 6164
kern.maxfiles: 12328
kern.argmax: 262144
kern.securelevel: -1
kern.hostname: radiotheater.ru
kern.hostid: 0
kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
kern.posix1version: 200112
kern.ngroups: 16
kern.job_control: 1
kern.saved_ids: 0
kern.boottime: { sec = 1164917028, usec = 38909 } Thu Nov 30 23:03:48 2006
kern.domainname:
kern.osreldate: 600034
kern.bootfile: /boot/kernel/kernel
kern.maxfilesperproc: 11095
kern.maxprocperuid: 5547
kern.ipc.maxsockbuf: 262144
kern.ipc.sockbuf_waste_factor: 8
kern.ipc.somaxconn: 128
kern.ipc.max_linkhdr: 16
kern.ipc.max_protohdr: 60
kern.ipc.max_hdr: 76
kern.ipc.max_datalen: 132
kern.ipc.nmbclusters: 25600
kern.ipc.maxpipekva: 16777216
kern.ipc.pipes: 96
kern.ipc.pipekva: 786432
kern.ipc.pipefragretry: 0
kern.ipc.pipeallocfail: 0
kern.ipc.piperesizefail: 0
kern.ipc.piperesizeallowed: 1
kern.ipc.msgmax: 16384
kern.ipc.msgmni: 40
kern.ipc.msgmnb: 2048
kern.ipc.msgtql: 40
kern.ipc.msgssz: 8
kern.ipc.msgseg: 2048
kern.ipc.semmap: 30
kern.ipc.semmni: 10
kern.ipc.semmns: 60
kern.ipc.semmnu: 30
kern.ipc.semmsl: 60
kern.ipc.semopm: 100
kern.ipc.semume: 10
kern.ipc.semusz: 92
kern.ipc.semvmx: 32767
kern.ipc.semaem: 16384
kern.ipc.shmmax: 33554432
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0
kern.ipc.shm_allow_removed: 0
kern.ipc.numopensockets: 277
kern.ipc.maxsockets: 25600
kern.ipc.nsfbufs: 6656
kern.ipc.nsfbufspeak: 104
kern.ipc.nsfbufsused: 9
kern.dummy: 0
kern.ps_strings: 3217031152
kern.usrstack: 3217031168
kern.logsigexit: 1
kern.iov_max: 1024
kern.cam.cam_srch_hi: 0
kern.cam.scsi_delay: 5000
kern.cam.cd.changer.min_busy_seconds: 5
kern.cam.cd.changer.max_busy_seconds: 15
kern.cam.da.retry_count: 4
kern.cam.da.default_timeout: 60
kern.disks: ad6 ad4
kern.geom.debugflags: 0
kern.geom.collectstats: 1
kern.elf32.fallback_brand: -1
kern.init_path:
/sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init:/stand/sysinstall
kern.init_shutdown_timeout: 120
kern.acct_suspend: 2
kern.acct_resume: 4
kern.acct_chkfreq: 15
kern.cp_time: 12465048 509445732 4313331 145742 286905
kern.openfiles: 920
kern.kq_calloutmax: 4096
kern.stackprot: 7
kern.ps_arg_cache_limit: 256
kern.lastpid: 59901
kern.randompid: 0
kern.ktrace.genio_size: 4096
kern.ktrace.request_pool: 100
kern.module_path: /boot/kernel;/boot/modules
kern.malloc:
Type InUse MemUse HighUse Requests Size(s)
linux 10 1K - 10 32
acpidev 37 2K - 37 32
acpisem 17 2K - 17 64
PCI Link 16 2K - 16 16,128
acpitask 0 0K - 2 32
acpica 868 47K - 802085 16,32,64,128,256,512,1024
DEVFS1 101 26K - 101 256
DEVFS3 222 28K - 223 128
DEVFS2 101 2K - 101 16
nexusdev 3 1K - 3 16
memdesc 1 4K - 1 4096
I/O APIC 4 4K - 4 1024
USBdev 13 5K - 13 16,128,512
USB 49 5K - 49 16,32,64,128,256
atkbddev 2 1K - 2 32
entropy 1024 64K - 1024 64
VM pgdata 2 65K - 2 64
ppbusdev 3 1K - 3 128
CAM dev queue 3 1K - 3 64
UMAHash 2 6K - 9 256,512,1024,2048,4096
UFS mount 12 41K - 12 256,2048,4096
UFS dirhash 732 137K - 73989 16,32,64,128,256,512
savedino 0 0K - 193844 256
newdirblk 0 0K - 672 16
dirrem 0 0K - 774933 32
mkdir 0 0K - 72988 32
diradd 1 1K - 815915 32
freefile 0 0K - 628795 32
freeblks 0 0K - 580995 256
freefrag 1 1K - 549509 32
allocindir 0 0K - 1787176 64
indirdep 0 0K - 21253 32
allocdirect 1 1K - 1709833 128
bmsafemap 1 1K - 83195 32
newblk 1 1K - 3497010 64,256
inodedep 2 257K - 1028660 128
pagedep 2 33K - 143892 64
p1003.1b 1 1K - 1 16
NFS daemon 1 1K - 1 256
in6_multi 7 1K - 7 64
syncache 1 8K - 1
CAM queue 9 1K - 379 16,32,64,128
hostcache 1 24K - 1
IpFw/IpAcct 280 29K - 282 64,128
in_multi 2 1K - 2 32
routetbl 194 37K - 2588 16,32,64,128,256
ATA generic 3 3K - 3 1024
CAM periph 1 1K - 31 128
lo 1 1K - 1 16
arpcom 1 1K - 1 16
clone 4 16K - 4 4096
ether_multi 30 2K - 34 16,32,64
ifaddr 66 17K - 66 16,32,64,256,512,2048
ifnet 4 4K - 4 256,1024
BPF 3 1K - 3 64
mount 89 9K - 164 16,32,64,128,1024,2048
vnodes 1 1K - 2 16,128
VFS hash 1 256K - 1
cluster_save buffer 0 0K - 92745 32,64
vfscache 1 512K - 1
BIO buffer 60 120K - 98055 2048
pcb 40 5K - 1177087 16,32,64,2048
soname 22 3K - 7178714 16,32,64,128
mbuf_tag 0 0K - 11618 32
mbextcnt 9 1K - 2608279 16
accf 38 1K - 24964 16,32
ptys 6 1K - 6 128
ttys 1231 177K - 26431 128,1024
shm 49 60K - 57865 1024
sem 4 7K - 4 512,1024,4096
msg 4 25K - 4 1024,4096
iov 0 0K - 12991646 16,32,64,128,256,512,1024
ioctlops 0 0K - 1762057 16,32,64,256,512,1024
Unitno 9 1K - 1178795 16,64
turnstiles 391 25K - 391 64
taskqueue 6 1K - 6 128
sleep queues 391 13K - 391 32
sbuf 0 0K - 520 16,32,64,128,256,512,1024,2048,4096
rman 157 10K - 601 16,64
kobj 245 490K - 296 2048
eventhandler 35 2K - 35 32,128
devstat 8 17K - 8 16,4096
bus-sc 62 41K - 2042 16,32,64,128,256,512,1024,2048,4096
bus 951 38K - 4509 16,32,64,128,1024
SWAP 2 277K - 2 64
umtx 390 25K - 390 64
sysctltmp 0 0K - 163996 16,32,128
sysctloid 2613 79K - 2613 16,32,64
sysctl 0 0K - 197548 16,32,64
uidinfo 24 2K - 71058 32,1024
plimit 35 9K - 740903 256
cred 102 13K - 20798027 128
subproc 611 1128K - 2854005 256,4096
proc 2 8K - 2 4096
session 49 7K - 87304 128
pgrp 55 4K - 94932 64
mtx_pool 1 8K - 1
module 371 24K - 371 64,128
CAM XPT 38 23K - 275 16,64,512,1024
CAM SIM 3 1K - 3 64
ip6ndp 5 1K - 6 64,128
ip6opt 1 1K - 2 128
temp 20 240K - 49860703 16,32,64,128,256,512,1024,2048,4096
devbuf 261 1479K - 262 16,32,64,128,256,512,1024,2048,4096
lockf 33 3K - 4001325 64
linker 78 121K - 272 16,32,64,128,256,512,1024,4096
ACD driver 1 2K - 1 2048
KTRACE 100 13K - 100 128
AR driver 0 0K - 10 512,1024,2048
ithread 128 15K - 129 64,128
zombie 0 0K - 2853394 128
proc-args 89 7K - 1899288 16,32,64,128,256
kqueue 105 61K - 876358 256,1024
kenv 97 7K - 98 16,32,64,4096
sigio 17 1K - 53020 32
file desc 358 106K - 3026804 16,32,64,256,512,1024,2048,4096
ATA DMA 4 1K - 4 128
cdev 26 4K - 26 128
AD driver 2 1K - 2 32
isadev 18 2K - 18 64
GEOM 103 12K - 573 16,32,64,128,256,512,1024,2048,4096
pfs_nodes 20 3K - 20 128
DEVFS 20 1K - 21 16,128
DEVFS_RULE 34 8K - 34 32,256
kern.malloc_count: 197
kern.ident: GENERIC
kern.maxusers: 384
kern.fallback_elf_brand: -1
kern.kstack_pages: 2
kern.sync_on_panic: 0
kern.shutdown.poweroff_delay: 5000
kern.shutdown.kproc_shutdown_wait: 60
kern.sugid_coredump: 0
kern.coredump: 1
kern.nodump_coredump: 0
kern.corefile: %N.core
kern.fscale: 2048
kern.timecounter.stepwarnings: 0
kern.timecounter.nbinuptime: 2757033293
kern.timecounter.nnanouptime: 504
kern.timecounter.nmicrouptime: 2853777
kern.timecounter.nbintime: 3850160014
kern.timecounter.nnanotime: 16203899
kern.timecounter.nmicrotime: 3833060949
kern.timecounter.ngetbinuptime: 23442879
kern.timecounter.ngetnanouptime: 142392249
kern.timecounter.ngetmicrouptime: 2630878145
kern.timecounter.ngetbintime: 0
kern.timecounter.ngetnanotime: 0
kern.timecounter.ngetmicrotime: 442322693
kern.timecounter.nsetclock: 3
kern.timecounter.hardware: ACPI-safe
kern.timecounter.choice: TSC(800) ACPI-safe(1000) i8254(0) dummy(-1000000)
kern.timecounter.tick: 1
kern.threads.thr_scope: 0
kern.threads.thr_concurrency: 0
kern.threads.debug: 0
kern.threads.max_threads_per_proc: 1500
kern.threads.max_groups_per_proc: 1500
kern.threads.max_threads_hits: 0
kern.threads.virtual_cpu: 1
kern.sched.name: 4BSD
kern.sched.quantum: 100000
kern.sched.followon: 0
kern.sched.pfollowons: 0
kern.sched.kgfollowons: 0
kern.sched.preemption: 1
kern.ccpu: 1948
kern.devstat.numdevs: 2
kern.devstat.generation: 140
kern.devstat.version: 6
kern.kobj_methodcount: 115
kern.log_wakeups_per_second: 5
kern.log_console_output: 1
kern.always_console_output: 0
kern.msgbuf: >ipfw: 800 Deny TCP 87.245.57.147:28713 87.245.154.197:139 in via
bge0
<6>pid 23035 (httpd), uid 1014: exited on signal 6
<110>ipfw: 800 Deny TCP 195.64.132.10:22397 82.138.6.167:80 in via bge0
// ОПХЛ. Х ЕЫЕ 30ЙА Deny НР ТЮИПБНКЮ
<109>ipfw: limit 500 reached on entry 800
<6>pid 28140 (php-cgi), uid 1006: exited on signal 11 (core dumped)
<6>pid 88149 (httpd), uid 0: exited on signal 11 (core dumped)
<6>pid 22783 (php-cgi), uid 1006: exited on signal 11 (core dumped)
// ОПХЛ. ВРН ОЕВЮКЭМН, ЮОЮВ Х ОУО ОЕПХНДХВЕЯЙХ ОЮДЮЧР Б ЙНПДЮЛО
kern.msgbuf_clear: 0
kern.smp.maxcpus: 1
kern.smp.active: 0
kern.smp.disabled: 0
kern.smp.cpus: 1
kern.nselcoll: 20393
kern.drainwait: 300
kern.tty_nin: 310369
kern.tty_nout: 27426916
kern.console: consolectl,/ttyd0,consolectl,
kern.consmute: 0
kern.consmsgbuf_size: 8192
kern.constty_wakeups_per_second: 5
kern.filedelay: 30
kern.dirdelay: 29
kern.metadelay: 28
kern.minvnodes: 17496
kern.chroot_allow_open_directories: 1
kern.rpc.retries: 0
kern.rpc.request: 0
kern.rpc.timeouts: 0
kern.rpc.unexpected: 0
kern.rpc.invalid: 0
kern.random.yarrow.gengateinterval: 10
kern.random.yarrow.bins: 10
kern.random.yarrow.fastthresh: 192
kern.random.yarrow.slowthresh: 256
kern.random.yarrow.slowoverthresh: 2
kern.random.sys.seeded: 1
kern.random.sys.harvest.ethernet: 1
kern.random.sys.harvest.point_to_point: 1
kern.random.sys.harvest.interrupt: 1
kern.random.sys.harvest.swi: 0