LINUX.ORG.RU
ФорумAdmin

Сравнение производительности php: FreeBSD vs Gentoo Linux

 


7

8

Доброго времени суток,

Имеется два идентичных сервера: Xeon E3-1270v2, 32Gb RAM, RAID10. На одном из них стоит Gentoo Linux запиленная под железо, на другом FreeBSD 10-STABLE. Стало интересно сравнить производительность фри c Linux-ом на типичных серверных задачах: nginx+uwsgi_php55, mariadb-galera, redis. Все кроме php работает замечательно. По результатам теста, php под FreeBSD жрет на 30% больше проца и при этом существенно проигрывает в скорости по сравнению с Linux-ом. Сразу скажу, что на обеих ОСях php собран одной версией компилятора, одинаковыми модулями и с теми же CFLAGS. Прослойка uwsgi никакого влияния не оказывает, пробовал php-fpm - результат тот же. В сетевом стеке или nginx затыка тоже нет (настройки nginx одинаковые). Для уверенности в этом, результат выполнения скрипта клал в htm файл и тащил по сети в 16 потоков, трафик забил гигобитный линк до отказа. Скорость отдачи статики через nginx практически одинаковые на обеих серверах. В итоге получилось, что на Linux php скрипт (банальный phpinfo()) выполнился за 1 msec, а на фре примерно за 8 msec. Ниже трейсы с временными метками.

Gentoo Linux:

12:46:32.578393 accept4(6, {sa_family=AF_INET, sin_port=htons(59528), sin_addr=inet_addr("192.168.3.7")}, [16], SOCK_NONBLOCK) = 10
12:46:32.578527 read(10, "\0167\2\0\17\0SCRIPT_FILENAME+\0/home/htt"..., 4100) = 574
12:46:32.578678 lstat("/home", {st_mode=S_IFDIR|0755, st_size=256, ...}) = 0
12:46:32.578779 lstat("/home/httpd", {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
12:46:32.578917 lstat("/home/httpd/www", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
12:46:32.578966 lstat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.579035 lstat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579078 stat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579124 lstat("/home", {st_mode=S_IFDIR|0755, st_size=256, ...}) = 0
12:46:32.579161 lstat("/home/httpd", {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
12:46:32.579177 lstat("/home/httpd/www", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
12:46:32.579225 lstat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.579261 lstat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579296 lstat("/home/httpd/www/system/web/info.php", {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
12:46:32.579321 stat("/home/httpd/www/system/web/info.php", {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
12:46:32.579373 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={60, 0}}, NULL) = 0
12:46:32.579417 rt_sigaction(SIGPROF, {0x7f67b9b1a0b0, [PROF], SA_RESTORER|SA_RESTART, 0x3654634d10}, {0x7f67b9b1a0b0, [PROF], SA_RESTORER|SA_RESTART, 0x3654634d10}, 8) = 0
12:46:32.579464 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
12:46:32.579517 lstat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579535 lstat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.579565 lstat("/home/httpd/www", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
12:46:32.579588 lstat("/home/httpd", {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
12:46:32.579608 lstat("/home", {st_mode=S_IFDIR|0755, st_size=256, ...}) = 0
12:46:32.579627 stat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579647 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={30, 0}}, NULL) = 0
12:46:32.579662 lstat("/home/httpd/www/system/web/info.php", {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
12:46:32.579679 lstat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579698 lstat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.579715 lstat("/home/httpd/www", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
12:46:32.579731 lstat("/home/httpd", {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
12:46:32.579772 lstat("/home", {st_mode=S_IFDIR|0755, st_size=256, ...}) = 0
12:46:32.579800 stat("/home/httpd/www/system/web/info.php", {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
12:46:32.579816 lstat("/home/httpd/www/system/web/info.php", {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
12:46:32.579831 lstat("/home/httpd/www/system/web", {st_mode=S_IFDIR|0755, st_size=440, ...}) = 0
12:46:32.579864 lstat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.579882 lstat("/home/httpd/www", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
12:46:32.579899 lstat("/home/httpd", {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
12:46:32.579917 lstat("/home", {st_mode=S_IFDIR|0755, st_size=256, ...}) = 0
12:46:32.579944 uname({sys="Linux", node="node1", ...}) = 0
12:46:32.581114 write(10, "HTTP/1.1 200 OK\r\nContent-type: t"..., 44) = 44
12:46:32.581141 write(10, "<!DOCTYPE html PUBLIC \"-//W3C//D"..., 95544) = 95544
12:46:32.581178 lstat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.581195 lstat("/home/httpd/www", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
12:46:32.581213 lstat("/home/httpd", {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
12:46:32.581232 lstat("/home", {st_mode=S_IFDIR|0755, st_size=256, ...}) = 0
12:46:32.581249 stat("/home/httpd/www/system", {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
12:46:32.581268 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
12:46:32.581298 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
12:46:32.581313 open("/proc/self/stat", O_RDONLY) = 13
12:46:32.581333 fstat(13, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
12:46:32.581369 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f67b87bf000
12:46:32.581390 read(13, "5295 (uwsgi) R 5292 5291 5291 0 "..., 1024) = 309
12:46:32.581415 close(13)               = 0
12:46:32.581435 munmap(0x7f67b87bf000, 4096) = 0
12:46:32.581452 close(10)               = 0
12:46:32.581475 writev(2, [{"{address space usage: 313401344 "..., 78}, {"[pid: 5295|app: -1|req: -1/20] 1"..., 207}], 2) = 285
12:46:32.581516 epoll_wait(8, ^CProcess 5295 detached
 <detached ...>

FreeBSD:

13518: 4.569934535 4.569699769 kevent(7,0x0,0,{0x6,EVFILT_READ,0x0,0,0x1,0x0},1,0x0) = 1 (0x1)
13518: 4.570825352 0.000052122 accept(6,{ AF_INET 192.168.3.8:27225 },0x800751104) = 9 (0x9)
13518: 4.571227700 0.000080451 read(9,"\^N7\^B\0\^O\0SCRIPT_FILENAME+\0"...,4100) = 574 (0x23e)
13518: 4.572505836 0.000127551 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
13518: 4.572865713 0.000085512 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
13518: 4.573190386 0.000084730 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0)
13518: 4.573510820 0.000085387 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0)
13518: 4.573830457 0.000086490 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
13518: 4.574463050 0.000112191 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
13518: 4.574776573 0.000074341 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
13518: 4.575283320 0.000147897 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
13518: 4.575610283 0.000083883 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0)
13518: 4.575931248 0.000084239 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0)
13518: 4.576285572 0.000108849 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
13518: 4.576609324 0.000111585 lstat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.576934252 0.000087095 stat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.578137551 0.000044300 setitimer(2,{0.000000, 60.000000 },0x0) = 0 (0x0)
13518: 4.578890119 0.000065843 sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
13518: 4.579187695 0.000043938 sigaction(SIGPROF,{ 0x8008c4f10 SA_RESTART|SA_SIGINFO ss_t },{ SIG_DFL SA_RESTART ss_t }) = 0 (0x0)
13518: 4.579462247 0.000041825 sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
13518: 4.579911068 0.000042550 sigprocmask(SIG_UNBLOCK,SIGPROF,0x0) = 0 (0x0)
13518: 4.590744228 0.000042902 getpid()		 = 13518 (0x34ce)
13518: 4.591336110 0.000120646 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
13518: 4.591654258 0.000083637 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0)
13518: 4.591972362 0.000081378 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0)
13518: 4.592261019 0.000077203 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
13518: 4.592546414 0.000053455 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
13518: 4.593027172 0.000087156 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
13518: 4.593343938 0.000042315 setitimer(2,{0.000000, 30.000000 },0x0) = 0 (0x0)
13518: 4.593741569 0.000111314 lstat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.594713138 0.000122570 open("/home/httpd/www/system/web/info.php",O_RDONLY,00) = 11 (0xb)
13518: 4.595143348 0.000071575 fstat(11,{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.595421016 0.000066014 lseek(11,0x0,SEEK_CUR) = 0 (0x0)
13518: 4.595870293 0.000074647 read(11,"<?php\nphpinfo();\n?>\n",8192) = 20 (0x14)
13518: 4.596238890 0.000046159 read(11,0x7dc8e8,8192) = 0 (0x0)
13518: 4.596512268 0.000044300 read(11,0x7dc8e8,8192) = 0 (0x0)
13518: 4.596948686 0.000071119 close(11)	 = 0 (0x0)
13518: 4.600002706 0.000046740 break(0xd44000)	 = 0 (0x0)
13518: 4.604407899 0.000144809 open("/home/httpd/www/system/web/info.php",O_RDONLY,00) = 11 (0xb)
13518: 4.604657610 0.000047382 fstat(11,{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.604905881 0.000046504 __sysctl(0x7fffffffb380,0x2,0x7fffffffb37c,0x7fffffffb388,0x0,0x0) = 0 (0x0)
13518: 4.605218127 0.000046154 fstat(11,{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.605494952 0.000044314 fstat(11,{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
13518: 4.605771958 0.000076125 mmap(0x0,20,PROT_READ,MAP_SHARED,11,0x0) = 34367475712 (0x800761000)
13518: 4.607110165 0.000039308 getpid()		 = 13518 (0x34ce)
13518: 4.609585731 0.000076692 munmap(0x800761000,20) = 0 (0x0)
13518: 4.609831733 0.000072562 close(11)	 = 0 (0x0)
13518: 4.610278029 0.000047472 __sysctl(0x7fffffffbfe0,0x2,0x7fffffffc130,0x7fffffffbfd8,0x0,0x0) = 0 (0x0)
13518: 4.610554860 0.000044264 __sysctl(0x7fffffffbfe0,0x2,0x7fffffffc230,0x7fffffffbfd8,0x0,0x0) = 0 (0x0)
13518: 4.610830052 0.000066649 __sysctl(0x7fffffffbfe0,0x2,0x7fffffffc330,0x7fffffffbfd8,0x0,0x0) = 0 (0x0)
13518: 4.611107379 0.000067807 __sysctl(0x7fffffffbfe0,0x2,0x7fffffffc430,0x7fffffffbfd8,0x0,0x0) = 0 (0x0)
13518: 4.611396603 0.000042516 __sysctl(0x7fffffffbfe0,0x2,0x7fffffffc530,0x7fffffffbfd8,0x0,0x0) = 0 (0x0)
13518: 4.616492616 0.000155860 open("/usr/share/locale/en_US.UTF-8/LC_CTYPE",O_CLOEXEC,0666) = 11 (0xb)
13518: 4.616764816 0.000070753 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
13518: 4.617088612 0.000069731 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
13518: 4.617405293 0.000064435 lseek(11,0x0,SEEK_CUR) = 0 (0x0)
13518: 4.617650067 0.000043323 lseek(11,0x0,SEEK_SET) = 0 (0x0)
13518: 4.618217554 0.000365490 read(11,"RuneMag1UTF-8\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
13518: 4.619179546 0.000082154 read(11,"@\^D\b\0@\^D\b\0@\^D\b\0@\^D\b\0"...,65536) = 10596 (0x2964)
13518: 4.620830499 0.000050112 close(11)	 = 0 (0x0)
13518: 4.624148825 0.000068403 break(0xe44000)	 = 0 (0x0)
13518: 4.630655933 0.000126919 open("/usr/share/locale/en_US.UTF-8/LC_CTYPE",O_CLOEXEC,0666) = 11 (0xb)
13518: 4.630926550 0.000070057 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
13518: 4.631176742 0.000045122 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
13518: 4.631422162 0.000043784 lseek(11,0x0,SEEK_CUR) = 0 (0x0)
13518: 4.631664936 0.000042445 lseek(11,0x0,SEEK_SET) = 0 (0x0)
13518: 4.632011403 0.000119448 read(11,"RuneMag1UTF-8\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
13518: 4.632747574 0.000079103 read(11,"@\^D\b\0@\^D\b\0@\^D\b\0@\^D\b\0"...,65536) = 10596 (0x2964)
13518: 4.633894601 0.000069425 close(11)	 = 0 (0x0)
13518: 4.638873827 0.000109916 write(9,"HTTP/1.1 200 OK\r\nContent-type:"...,44) = 44 (0x2c)
13518: 4.639321908 0.000170057 write(9,"<!DOCTYPE html PUBLIC "-//W3C//D"...,85600) = 81616 (0x13ed0)
13518: 4.640090226 0.000052438 poll({9/POLLOUT},1,4000) = 1 (0x1)
13518: 4.640748743 0.000099664 write(9,"ance, Johann Hanne, Boris Lytoch"...,3984) = 3984 (0xf90)
13518: 4.641393844 0.000129956 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
13518: 4.641877614 0.000042891 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
13518: 4.642830145 0.000041974 getpid()		 = 13518 (0x34ce)
13518: 4.643472691 0.000042961 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
13518: 4.644000590 0.000077829 __sysctl(0x7fffffffd3d8,0x2,0x8027e0db0,0x7fffffffd3e0,0x0,0x0) = 0 (0x0)
13518: 4.644593565 0.000113284 open("/dev/null",O_CLOEXEC,00) = 11 (0xb)
13518: 4.645078362 0.000070653 fstat(11,{ mode=crw-rw-rw- ,inode=25,size=0,blksize=4096 }) = 0 (0x0)
13518: 4.645558775 0.000077133 open("/dev/null",O_CLOEXEC,00) = 12 (0xc)
13518: 4.645971445 0.000092082 __sysctl(0x7fffffffd470,0x4,0x0,0x7fffffffd460,0x0,0x0) = 0 (0x0)
13518: 4.646439044 0.000119022 __sysctl(0x7fffffffd470,0x4,0x7e9900,0x7fffffffd460,0x0,0x0) = 0 (0x0)
13518: 4.646921601 0.000071426 close(11)	 = 0 (0x0)
13518: 4.647215820 0.000041939 close(12)	 = 0 (0x0)
13518: 4.647561215 0.000079659 close(9)		 = 0 (0x0)
13518: 4.648209339 0.000112332 writev(0x2,0x7fffffffb470,0x2,0x8ad8d7b1a524b1c9,0x7fffffb93526,0x8025b0de0) = 286 (0x11e)
Не совсем понятно зачем php под фрей запрашивает кучу sysctl да еще и зачем-то в /dev/null лезет. Можно ли это как-то выпилить?

Подскажите пожалуйста куда копать. Если нужна доп. инфа о настройках FreeBSD - пишите.

Заранее благодарен!

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

по не ведомой для меня причине, php процессы во фре жрали больше памяти чем в линуксе

В линуксе выделение памяти происходит при использовании (с oom killer при исчерпании), во фре при malloc() (с возвратом NULL). Поэтому, кстати, бенчи, не использующие все страницы запрошенной памяти, в линуксе быстрее, а использующие — во фре.

Еще во фре добавил три модуля…

Ещё во фре как минимум GC отключен, а zlib включен.

Я уверен, это какая нибудь мелочь либо в конфиге, либо в коде php, как было с clock_gettime(), если не ошибаюсь.

baka-kun ★★★★★
()
Последнее исправление: baka-kun (всего исправлений: 1)
Ответ на: комментарий от baka-kun

В линуксе выделение памяти происходит при использовании...

Интересно, не знал. Спасибо. Правда в линуксе и фре слишком разные модели работы с оперативкой и кешами. Да еще и ARC в ZFS при этом как-то непонятно вклинивается. Надо будет исходники полистать и доки для девелопперов почитать. Относительно потребления памяти я лишь сужу по статистике uwsgi.

Ещё во фре как минимум GC отключен, а zlib включен.

GC отключил потому, что время от времени во фре падали воркеры uwsgi по сегфолту. Но потом это вылечил пропатчив его патчами с генты.
Я выровняю настройки и еще раз проверю.

Я уверен, это какая нибудь мелочь либо в конфиге,

Разве в конфиге можно спрятать что-то, что не отоброзится в phpinfo?

либо в коде php, как было с clock_gettime(), если не ошибаюсь.

Скорее всего, так как в Gentoo довольно оперативно фиксят баги патчами. Но странно то, что почти все сисколы пропорционально тормознутые во фре. Правда это может быть как из за пыха, так и за системы. Как писал ранее, непонятно нафига оно sysctl при каждом запросе дергает.

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

Выровнял настройки. Бесполезно.

25646: 3.230915241 3.230157536 kevent(7,0x0,0,{0x6,EVFILT_READ,0x0,0,0x1,0x0},1,0x0) = 1 (0x1)
25646: 3.232319566 0.000153805 accept(6,{ AF_INET 192.168.3.8:49596 },0x800751104) = 9 (0x9)
25646: 3.233202526 0.000117689 read(9,"\^N7\^B\0\^O\0SCRIPT_FILENAME+\0"...,4100) = 574 (0x23e)
25646: 3.235329371 0.000315342 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
25646: 3.236131715 0.000197598 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
25646: 3.237058248 0.000322398 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0) 
25646: 3.237856588 0.000236726 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0) 
25646: 3.238619294 0.000202349 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0) 
25646: 3.239644879 0.000324588 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0) 
25646: 3.240486165 0.000197893 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
25646: 3.241167974 0.000201732 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
25646: 3.241809543 0.000161332 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0) 
25646: 3.242531943 0.000203707 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0) 
25646: 3.243253567 0.000234416 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0) 
25646: 3.244249751 0.000352145 lstat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0) 
25646: 3.245175482 0.000240845 stat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0) 
25646: 3.246062276 0.000086019 setitimer(2,{0.000000, 60.000000 },0x0) = 0 (0x0)
25646: 3.247782668 0.000117367 sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
25646: 3.248504813 0.000117538 sigaction(SIGPROF,{ 0x8008c4f10 SA_RESTART|SA_SIGINFO ss_t },{ 0x8008c4f10 SA_RESTART|SA_SIGINFO ss_t }) = 0 (0x0)
25646: 3.249073128 0.000047707 sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
25646: 3.249753468 0.000085206 sigprocmask(SIG_UNBLOCK,SIGPROF,0x0) = 0 (0x0)
25646: 3.251192791 0.000115749 getpid()          = 25646 (0x642e)
25646: 3.252178552 0.000421440 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0) 
25646: 3.253299586 0.000196811 setitimer(2,{0.000000, 30.000000 },0x0) = 0 (0x0)
25646: 3.254390803 0.000159978 getpid()          = 25646 (0x642e)
25646: 3.255267359 0.000118832 __sysctl(0x7fffffffbfc0,0x2,0x7fffffffc110,0x7fffffffbfb8,0x0,0x0) = 0 (0x0)
25646: 3.255949990 0.000120947 __sysctl(0x7fffffffbfc0,0x2,0x7fffffffc210,0x7fffffffbfb8,0x0,0x0) = 0 (0x0)
25646: 3.256591283 0.000120285 __sysctl(0x7fffffffbfc0,0x2,0x7fffffffc310,0x7fffffffbfb8,0x0,0x0) = 0 (0x0)
25646: 3.257233653 0.000122159 __sysctl(0x7fffffffbfc0,0x2,0x7fffffffc410,0x7fffffffbfb8,0x0,0x0) = 0 (0x0)
25646: 3.257875618 0.000120851 __sysctl(0x7fffffffbfc0,0x2,0x7fffffffc510,0x7fffffffbfb8,0x0,0x0) = 0 (0x0)
25646: 3.278834605 0.000362447 open("/usr/share/locale/en_US.UTF-8/LC_CTYPE",O_CLOEXEC,0666) = 11 (0xb)
25646: 3.279443907 0.000124489 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
25646: 3.280159632 0.000201792 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
25646: 3.281008556 0.000085617 lseek(11,0x0,SEEK_CUR) = 0 (0x0)
25646: 3.281690535 0.000122735 lseek(11,0x0,SEEK_SET) = 0 (0x0)
25646: 3.282604450 0.000354445 read(11,"RuneMag1UTF-8\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
25646: 3.284819763 0.000202339 read(11,"@\^D\b\0@\^D\b\0@\^D\b\0@\^D\b\0"...,65536) = 10596 (0x2964)
25646: 3.288029466 0.000124098 close(11)         = 0 (0x0)
25646: 3.297251497 0.000236661 write(9,"HTTP/1.1 200 OK\r\nContent-type:"...,44) = 44 (0x2c)
25646: 3.298379226 0.000362919 write(9,"<!DOCTYPE html PUBLIC "-//W3C//D"...,85749) = 81616 (0x13ed0)
25646: 3.299467562 0.000125231 poll({9/POLLOUT},1,4000) = 1 (0x1)
25646: 3.300642973 0.000292757 write(9,"ughes, Marcus Boerger, Rob Richa"...,4133) = 4133 (0x1025)
25646: 3.301808026 0.000279577 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0) 
25646: 3.302610084 0.000156586 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
25646: 3.303492378 0.000114757 getpid()          = 25646 (0x642e)
25646: 3.304214813 0.000118877 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
25646: 3.304936913 0.000118626 __sysctl(0x7fffffffd3b8,0x2,0x8027e0db0,0x7fffffffd3c0,0x0,0x0) = 0 (0x0)
25646: 3.305940223 0.000239142 open("/dev/null",O_CLOEXEC,00) = 11 (0xb)
25646: 3.306621621 0.000154035 fstat(11,{ mode=crw-rw-rw- ,inode=25,size=0,blksize=4096 }) = 0 (0x0)
25646: 3.307506160 0.000162911 open("/dev/null",O_CLOEXEC,00) = 12 (0xc)
25646: 3.308306750 0.000239217 __sysctl(0x7fffffffd450,0x4,0x0,0x7fffffffd440,0x0,0x0) = 0 (0x0)
25646: 3.309149610 0.000279857 __sysctl(0x7fffffffd450,0x4,0x7e7900,0x7fffffffd440,0x0,0x0) = 0 (0x0)
25646: 3.309911774 0.000156406 close(11)         = 0 (0x0)
25646: 3.310513619 0.000156967 close(12)         = 0 (0x0)
25646: 3.311231579 0.000272997 close(9)          = 0 (0x0)
25646: 3.312220632 0.000182018 writev(0x2,0x7fffffffb450,0x2,0xc60bb28a02913a03,0x7fffffb93506,0x8025b0de0) = 286 (0x11e)

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

И в догонку sysctl -a. Авось кто-то полистает и подскажет что там можно подкрутить.

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

А вы ему ответьте, что под фряху никто уже софт не тестирует. Фряха, может, и не плоха, но ядро Линукс сейчас пилит такое сообщество, что фряха не угонится.

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

А вы ему ответьте, что под фряху никто уже софт не тестирует. Фряха, может, и не плоха, но ядро Линукс сейчас пилит такое сообщество, что фряха не угонится.

Да я ему уже говорил. Но все равно это ему как серпом по я... :)

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

Если дадут.

Мне его место даром не нужно. Я админ а он программер. У нас совсем разные сферы деятельности. Причем настолько разные, что порой мы друг друга не понимаем. Я не шарю так глубоко в вебе как он. А он не шарит так глубоко в *nix как я. Да и начальник он мой чисто для галочки, так как все решения по администрированию принимаю я и обосновываю перед всем начальством почему я решил именно так. В конце концов, в компании, где неправильное решение может стоить существенных потерь проекта не найдется выскочек которые захотят взять чужую ответственность на себя.

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

Рак, задрачиваешь на циферки в бенчмарках? А стабильность и удобство деплоймента/поддержки ты сравнил?

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

Где там *libc по ссылке?

В «3.2. Adjusting libmap.conf» в файле /etc/libmap.conf вручную указываются библиотеки, которые подменяются новыми из состава GCC.

Там стандартная процедура установки gcc и binutils которая выполняется перед установкой портов.

Ой ли. ;)

GCC из портов практически не нужен, если достаточно того, что есть в системе (LLVM/Clang и его рантайм).

Например, у меня тоже установлен GCC, но он (его рантайм, если точнее) нужен только нескольким приложениям:

> pkg info -r binutils-2.23.2
binutils-2.23.2:
	gcc-4.6.4
	CoinMP-1.7.2
	openjdk-7.25.15_2
	swt-3.5.2_2
	swt-devel-3.7.1_1,1
	jboss72-7.2.0_1
	jetty-8.1.11
	maven3-3.0.4
	rssowl-1.2.3_9
	vuze-5.1.0.0
	apache-ant-1.8.4
	jenkins-1.541
	jakarta-commons-daemon-1.0.15
	tomcat-7.0.40

> pkg info -r gcc-4.6.4
gcc-4.6.4:
	CoinMP-1.7.2
	openjdk-7.25.15_2
	swt-3.5.2_2
	swt-devel-3.7.1_1,1
	jboss72-7.2.0_1
	jetty-8.1.11
	maven3-3.0.4
	rssowl-1.2.3_9
	vuze-5.1.0.0
	apache-ant-1.8.4
	jenkins-1.541
	jakarta-commons-daemon-1.0.15
	tomcat-7.0.40
То есть двум или трём, если точнее — CoinMP-1.7.2 и openjdk-7.25.15_2, так как остальные написаны на Java (ещё SWT может быть как-то связана с JNI-обёртками на C — не уверен о прямой зависимости от GCC/binutils).

Файл libmap.conf почти чист:

> cat /etc/libmap.conf
# $FreeBSD: stable/10/etc/libmap.conf 253853 2013-08-01 05:50:42Z jlh $
includedir /usr/local/etc/libmap.d

> ls /usr/local/etc/libmap.d
ls: /usr/local/etc/libmap.d: No such file or directory

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

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

В инете все BSD-шники с пеной у рта доказывают что лучше православного kqueue ничего нет и быть не может. Вот и хочется в этом убедиться.

Если хочется убедиться, то нужно использовать дефолтные установки и настройки, а не городить незнамо что из левых флагов компиляции и неродных GCC/binutils. То есть не превращать FreeBSD в клон линукса, а использовать то, что в неё заложено изначально.

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

А как фряха ведет себя при своппинге?

Про свопинге, когда свободной памяти остаётся мало и её перестаёт хватать, FreeBSD постепенно начинает занимать SWAP. Например, при компиляции OpenOffice в текстовой консоли, когда оперативки всего 4 ГБ, в графическом окружении Xfce у плагина потребления памяти начинает закрашиваться линейка индикатора подкачки. За весь сеанс компиляции может потребоваться около 100-150 МБ пространства в SWAP. При этом никаких дёрганий, задержек курсора мыши на экране не чувствуется. Графические элементы управления всё так же продолжают откликаться на мышь.

Когда ОЗУ больше 8 ГБ SWAP лично мне не нужен. Я его отключил вообще. На стабильность работы это не влияет.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от iZEN

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

Я уже писал, что для меня важна скорость в первую очередь. Левые флаги и неродные GCC/binutils показывают лучшую производительность.

а использовать то, что в неё заложено изначально

То, что в нее заложено изначально еще тормознутее. По сему и пытаюсь хоть как-то поправить ситуацию.

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

Левые флаги и неродные GCC/binutils показывают лучшую производительность.

Насколько лучшую? -30%? :)

То, что в нее заложено изначально еще тормознутее.

На чём основано это заблуждение?

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от iZEN

При этом никаких дёрганий, задержек курсора мыши на экране не чувствуется.

Это то, чего я никогда не увижу в линуксе. И зачем я только с линукса начинал, надо было с фряхи сразу, кучу нервов и времени сэкономил бы. Ведь обычно если во фряхе что-то не работает, то это не работает, а не так как в линуксе: вроде бы поддерживается, а по факту ничего такого и близко нет.

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

На чём основано это заблуждение?

Так уж и быть, в ближайшее время снесу все порты и соберу все системным шлангом для чистоты эксперимента. Вдруг там проблема не в самом php, а в каких-то либах которые оно юзает.

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

И зачем я только с линукса начинал, надо было с фряхи сразу, кучу нервов и времени сэкономил бы.

Вряд ли во фряхе лучше в плане плавности графики, один хрен - KDE, Xorg, etc.

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

С этого и надо было начинать.

Я как раз-то правильно начал, судя по полученным цифрам. Как видно ниже, производительность php собранным штатным шлангом осталась прежней.

32569: 2.657959010 2.657203576 kevent(7,0x0,0,{0x6,EVFILT_READ,0x0,0,0x1,0x0},1,0x0) = 1 (0x1)
32569: 2.659196411 0.000125231 accept(6,{ AF_INET 192.168.3.8:48752 },0x8006ec104) = 9 (0x9)
32569: 2.660074921 0.000119428 read(9,"\^N7\^B\0\^O\0SCRIPT_FILENAME+\0"...,4100) = 574 (0x23e)
32569: 2.662162126 0.000277061 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
32569: 2.662963799 0.000199848 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
32569: 2.663766139 0.000235088 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0)
32569: 2.664528318 0.000196967 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0)
32569: 2.665250477 0.000201286 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
32569: 2.665972737 0.000200104 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
32569: 2.666654671 0.000161001 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
32569: 2.667338284 0.000196535 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
32569: 2.668018765 0.000162950 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0)
32569: 2.668704638 0.000198329 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0)
32569: 2.669423756 0.000203977 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
32569: 2.670145164 0.000234566 lstat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
32569: 2.670867213 0.000202038 stat("/home/httpd/www/system/web/info.php",{ mode=-rw-r--r-- ,inode=102419,size=20,blksize=4096 }) = 0 (0x0)
32569: 2.671669212 0.000155138 setitimer(2,{0.000000, 60.000000 },0x0) = 0 (0x0)
32569: 2.673274572 0.000121743 sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
32569: 2.673962279 0.000086664 sigaction(SIGPROF,{ 0x8008c9f10 SA_RESTART|SA_SIGINFO ss_t },{ 0x8008c9f10 SA_RESTART|SA_SIGINFO ss_t }) = 0 (0x0)
32569: 2.674597780 0.000118696 sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
32569: 2.675237735 0.000080200 sigprocmask(SIG_UNBLOCK,SIGPROF,0x0) = 0 (0x0)
32569: 2.676602806 0.000078326 getpid()		 = 32569 (0x7f39)
32569: 2.677407486 0.000240851 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
32569: 2.678012322 0.000119222 setitimer(2,{0.000000, 30.000000 },0x0) = 0 (0x0)
32569: 2.678650688 0.000081532 getpid()		 = 32569 (0x7f39)
32569: 2.679291691 0.000120781 __sysctl(0x7fffffffc030,0x2,0x7fffffffc0f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
32569: 2.679933876 0.000121101 __sysctl(0x7fffffffc030,0x2,0x7fffffffc1f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
32569: 2.680575585 0.000121277 __sysctl(0x7fffffffc030,0x2,0x7fffffffc2f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
32569: 2.681217445 0.000122194 __sysctl(0x7fffffffc030,0x2,0x7fffffffc3f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
32569: 2.681826345 0.000121282 __sysctl(0x7fffffffc030,0x2,0x7fffffffc4f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
32569: 2.702120682 0.000321410 open("/usr/share/locale/en_US.UTF-8/LC_CTYPE",O_CLOEXEC,0666) = 11 (0xb)
32569: 2.702722066 0.000116897 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
32569: 2.703283605 0.000117047 fstat(11,{ mode=-r--r--r-- ,inode=132288,size=76132,blksize=65536 }) = 0 (0x0)
32569: 2.703885530 0.000120655 lseek(11,0x0,SEEK_CUR) = 0 (0x0)
32569: 2.704451269 0.000084585 lseek(11,0x0,SEEK_SET) = 0 (0x0)
32569: 2.705289549 0.000395487 read(11,"RuneMag1UTF-8\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
32569: 2.707176345 0.000275989 read(11,"@\^D\b\0@\^D\b\0@\^D\b\0@\^D\b\0"...,65536) = 10596 (0x2964)
32569: 2.709943466 0.000161322 close(11)	 = 0 (0x0)
32569: 2.719934546 0.000200013 write(9,"HTTP/1.1 200 OK\r\nContent-type:"...,44) = 44 (0x2c)
32569: 2.720937511 0.000399416 write(9,"<!DOCTYPE html PUBLIC "-//W3C//D"...,79954) = 79954 (0x13852)
32569: 2.721943472 0.000322634 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=15,blksize=4096 }) = 0 (0x0)
32569: 2.722888762 0.000184033 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
32569: 2.724089239 0.000119748 getpid()		 = 32569 (0x7f39)
32569: 2.725174693 0.000202038 madvise(0x802d61000,0x10000,0x5,0xaaaaaaaaaaaaaaab,0x7fffffffc4a0,0x8024edb10) = 0 (0x0)
32569: 2.726014858 0.000120661 madvise(0x81189a000,0x2000,0x5,0xaaaaaaaaaaaaaaab,0x811801a28,0x8024edb10) = 0 (0x0)
32569: 2.726817061 0.000201922 madvise(0x81189e000,0x40000,0x5,0xaaaaaaaaaaaaaaab,0x811801a28,0x8024edb10) = 0 (0x0)
32569: 2.727499417 0.000120265 madvise(0x811907000,0x13000,0x5,0xaaaaaaaaaaaaaaab,0x811801a28,0x8024edb10) = 0 (0x0)
32569: 2.728261686 0.000201822 madvise(0x81191b000,0x41000,0x5,0xaaaaaaaaaaaaaaab,0x811801a28,0x8024edb10) = 0 (0x0)
32569: 2.728983490 0.000121653 madvise(0x811903000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x7fffffffc4a0,0x8024edb10) = 0 (0x0)
32569: 2.729745504 0.000118265 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
32569: 2.730427047 0.000117594 __sysctl(0x7fffffffd398,0x2,0x8024c7db0,0x7fffffffd3a0,0x0,0x0) = 0 (0x0)
32569: 2.731391475 0.000240996 open("/dev/null",O_CLOEXEC,00) = 11 (0xb)
32569: 2.732031901 0.000116015 fstat(11,{ mode=crw-rw-rw- ,inode=25,size=0,blksize=4096 }) = 0 (0x0)
32569: 2.732875212 0.000162630 open("/dev/null",O_CLOEXEC,00) = 12 (0xc)
32569: 2.733636895 0.000240619 __sysctl(0x7fffffffd430,0x4,0x0,0x7fffffffd420,0x0,0x0) = 0 (0x0)
32569: 2.734520061 0.000322874 __sysctl(0x7fffffffd430,0x4,0x802ca4f00,0x7fffffffd420,0x0,0x0) = 0 (0x0)
32569: 2.735241835 0.000157414 close(11)	 = 0 (0x0)
32569: 2.735843529 0.000117659 close(12)	 = 0 (0x0)
32569: 2.736466371 0.000178491 close(9)		 = 0 (0x0)
32569: 2.737449581 0.000223907 writev(0x2,0x7fffffffb410,0x2,0x10,0x7fffffb8eed7,0x802297de0) = 286 (0x11e)

А вот общая производительность связки nginx-uwsgi-php упала. При тесте ab -n 10000 -c 16 http://192.168.3.8/info.php: Requests per second: 830.85 [#/sec] (mean)

На gcc было 1400 (с округлением в большую сторону). А На gentoo больше 4400.

Хорошо что я перед тем как пересобирать все шлангом сделал снапшоты. А то бы снова убил пару часов фикся проблемы несобирающихся портов.

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

Да бы не возникало сомнений.

node2 ~ # ldd `which php`
/usr/local/bin/php:
	libcrypt.so.5 => /lib/libcrypt.so.5 (0x800b11000)
	libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x800d31000)
	libm.so.5 => /lib/libm.so.5 (0x800f99000)
	libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x8011be000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x80153a000)
	libz.so.6 => /lib/libz.so.6 (0x80175d000)
	libthr.so.3 => /lib/libthr.so.3 (0x801972000)
	libc.so.7 => /lib/libc.so.7 (0x801b97000)
node2 ~ # ldd `which uwsgi`
/usr/local/bin/uwsgi:
	libthr.so.3 => /lib/libthr.so.3 (0x8008bc000)
	libm.so.5 => /lib/libm.so.5 (0x800ae1000)
	libz.so.6 => /lib/libz.so.6 (0x800d06000)
	libkvm.so.6 => /lib/libkvm.so.6 (0x800f1b000)
	libjail.so.1 => /lib/libjail.so.1 (0x801123000)
	libcrypt.so.5 => /lib/libcrypt.so.5 (0x801328000)
	libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x801548000)
	libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x8017b0000)
	libphp5.so => /usr/local/lib/libphp5.so (0x801b2c000)
	libc.so.7 => /lib/libc.so.7 (0x802154000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x8024ef000)
node2 ~ # ldd `which nginx`
/usr/local/sbin/nginx:
	libcrypt.so.5 => /lib/libcrypt.so.5 (0x8008ad000)
	libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x800acd000)
	libssl.so.8 => /usr/local/lib/libssl.so.8 (0x800d35000)
	libcrypto.so.8 => /usr/local/lib/libcrypto.so.8 (0x800f9b000)
	libz.so.6 => /lib/libz.so.6 (0x801397000)
	libc.so.7 => /lib/libc.so.7 (0x8015ac000)
	libthr.so.3 => /lib/libthr.so.3 (0x801947000)

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

Теперь тот же выхлоп можно на прежней конфигурации?

Без проблем.

node2 src # ldd `which php`
/usr/local/bin/php:
	libcrypt.so.5 => /lib/libcrypt.so.5 (0x800b11000)
	libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x800d31000)
	libm.so.5 => /lib/libm.so.5 (0x800f98000)
	libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x8011bd000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x80151c000)
	libz.so.6 => /lib/libz.so.6 (0x80173f000)
	libthr.so.3 => /lib/libthr.so.3 (0x801954000)
	libc.so.7 => /lib/libc.so.7 (0x801b79000)
	libgcc_s.so.1 => /usr/local/lib/gcc47/libgcc_s.so.1 (0x801f14000)
node2 src # ldd `which uwsgi`
/usr/local/bin/uwsgi:
	libthr.so.3 => /lib/libthr.so.3 (0x8008bc000)
	libm.so.5 => /lib/libm.so.5 (0x800ae1000)
	libz.so.6 => /lib/libz.so.6 (0x800d06000)
	libkvm.so.6 => /lib/libkvm.so.6 (0x800f1b000)
	libtcmalloc.so.2 => /usr/local/lib/libtcmalloc.so.2 (0x801123000)
	libjail.so.1 => /lib/libjail.so.1 (0x8013ff000)
	libcrypt.so.5 => /lib/libcrypt.so.5 (0x801604000)
	libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x801824000)
	libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x801a8b000)
	libphp5.so => /usr/local/lib/libphp5.so (0x801dea000)
	libc.so.7 => /lib/libc.so.7 (0x802412000)
	libunwind.so.8 => /usr/local/lib/libunwind.so.8 (0x8027ad000)
	libstdc++.so.6 => /usr/local/lib/gcc47/libstdc++.so.6 (0x8029c6000)
	libgcc_s.so.1 => /usr/local/lib/gcc47/libgcc_s.so.1 (0x802cd0000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x802ee5000)
node2 src # ldd `which nginx`
/usr/local/sbin/nginx:
	libcrypt.so.5 => /lib/libcrypt.so.5 (0x8008ab000)
	libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x800acb000)
	libssl.so.8 => /usr/local/lib/libssl.so.8 (0x800d32000)
	libcrypto.so.8 => /usr/local/lib/libcrypto.so.8 (0x800f99000)
	libz.so.6 => /lib/libz.so.6 (0x80137b000)
	libc.so.7 => /lib/libc.so.7 (0x801590000)
	libthr.so.3 => /lib/libthr.so.3 (0x80192b000)

И сразу сделал свежий тест:

# ab -n 10000 -c 16 http://192.168.3.8/info.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking testsystemafter2.tigerrr.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        nginx
Server Hostname:        testsystemafter2.tigerrr.com
Server Port:            80

Document Path:          /info.php
Document Length:        83375 bytes

Concurrency Level:      16
Time taken for tests:   7.496 seconds
Complete requests:      10000
Failed requests:        1003
   (Connect: 0, Receive: 0, Length: 1003, Exceptions: 0)
Write errors:           0
Total transferred:      835193263 bytes
HTML transferred:       833893003 bytes
Requests per second:    1334.08 [#/sec] (mean)
Time per request:       11.993 [ms] (mean)
Time per request:       0.750 [ms] (mean, across all concurrent requests)
Transfer rate:          108810.13 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1  10.0      1    1002
Processing:     4   11  23.4      9     248
Waiting:        1    3   0.7      3      17
Total:          5   12  25.4     10    1013

Percentage of the requests served within a certain time (ms)
  50%     10
  66%     10
  75%     10
  80%     10
  90%     11
  95%     12
  98%     15
  99%    238
 100%   1013 (longest request)

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

Тест сервака с гентой. Правда он сейчас под приличной нагрузкой, я не стал вырубать его с кластера.

# ab -n 10000 -c 16 http://192.168.3.7/info.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking testsystemafter2.tigerrr.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        nginx
Server Hostname:        testsystemafter2.tigerrr.com
Server Port:            80

Document Path:          /info.php
Document Length:        24532 bytes

Concurrency Level:      16
Time taken for tests:   3.703 seconds
Complete requests:      10000
Failed requests:        492
   (Connect: 0, Receive: 0, Length: 492, Exceptions: 0)
Write errors:           0
Total transferred:      246603545 bytes
HTML transferred:       245303285 bytes
Requests per second:    2700.65 [#/sec] (mean)
Time per request:       5.925 [ms] (mean)
Time per request:       0.370 [ms] (mean, across all concurrent requests)
Transfer rate:          65038.02 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       1
Processing:     2    6   6.1      4     217
Waiting:        2    4   3.4      3      41
Total:          2    6   6.1      5     217

Percentage of the requests served within a certain time (ms)
  50%      5
  66%      6
  75%      6
  80%      7
  90%      9
  95%     12
  98%     17
  99%     22
 100%    217 (longest request)
iron ★★★★★
() автор топика
Ответ на: комментарий от iron

Вот тест работы непосредственно нашего приложения.

FreeBSD:

Benchmarking 192.168.3.8 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests

Server Software:        nginx
Server Hostname:        192.168.3.8
Server Port:            80

Document Path:          /
Document Length:        3735 bytes

Concurrency Level:      16
Time taken for tests:   175.376 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      39950000 bytes
HTML transferred:       37350000 bytes
Requests per second:    57.02 [#/sec] (mean)
Time per request:       280.601 [ms] (mean)
Time per request:       17.538 [ms] (mean, across all concurrent requests)
Transfer rate:          222.46 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:   112  280  87.0    287    1194
Waiting:      112  280  87.0    287    1194
Total:        112  280  87.0    287    1195

Percentage of the requests served within a certain time (ms)
  50%    287
  66%    296
  75%    303
  80%    308
  90%    343
  95%    386
  98%    509
  99%    640
 100%   1195 (longest request)

Gentoo Linux

Benchmarking 192.168.3.7 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests

Server Software:        nginx
Server Hostname:        192.168.3.7
Server Port:            80

Document Path:          /
Document Length:        3735 bytes

Concurrency Level:      16
Time taken for tests:   105.332 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      39950000 bytes
HTML transferred:       37350000 bytes
Requests per second:    94.94 [#/sec] (mean)
Time per request:       168.532 [ms] (mean)
Time per request:       10.533 [ms] (mean, across all concurrent requests)
Transfer rate:          370.39 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    83  168  29.9    166     512
Waiting:       83  168  29.9    166     512
Total:         83  168  29.9    166     512

Percentage of the requests served within a certain time (ms)
  50%    166
  66%    177
  75%    185
  80%    190
  90%    205
  95%    218
  98%    232
  99%    243
 100%    512 (longest request)
Итог: FreeBSD практически в 2 раза тормознутее линукса на наших задачах.

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

Итог: FreeBSD практически в 2 раза тормознутее линукса на наших задачах.

Думайте дальше, что можно улучшить. К примеру, отключить проверку контрольных сумм на ZFS (ведь линуксовые ФС не делают этого).

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от iZEN

Думайте дальше, что можно улучшить. К примеру, отключить проверку контрольных сумм на ZFS (ведь линуксовые ФС не делают этого).

Дык оно и так отключено. Для папкок с БД и файлов проекта:
zfs:zfs_nocacheflush=1
checksum=off
compression=off
...и это никакой погоды не делает, так как все равно 99% файлов читаются с ARC. Я же с этого и начал, что я уперся именно в php.

iron ★★★★★
() автор топика
Последнее исправление: iron (всего исправлений: 1)
Ответ на: комментарий от iZEN

Кстати, мускуль тоже был таким же тормозным как и php пока я не включил zfs:zfs_nocacheflush=1. Если пропадет электричество или зависнет сервак то база полетит. Правда это не столь важно, так как на других нодах кластера та же база, при загрузке зальет недостающие транзакции.

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

Вообщем можно сказать что я ниасилил фряху.

1. Загрузчик boot0cfg кое-как проставился, и то после установки загрузочного сектора через fdisk

2. Не удалось собрать nouveau, нет поддержки в ядре. Ядро пересобирать с присеста на малознакомой не стал.

3. nvidia-driver-319.x не установился

4. Гаснет монитор и отрубается видеокарта (или кулер) при переключениях tty-сеансами.

5. Не обнаружилась веб-камера Logitech C270 (по usbconfig) и не заработала мышь PS/2 (очень странно) да и сами кеды кривовато поставились.

Вернулся на привычную Gentoo

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

Попробуйте заменить ZFS на UFS2+SUJ. Потом последовательно пересоберите всё ПО, включая систему, с помощью GCC 4.8, потом GCC 4.9, устанавливаемыми из портов и делая в каждом случае замеры производительности.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от iZEN

заменить ZFS на UFS2+SUJ

Да вы что...оно же по производительности ниже плинтуса. Я с самого начала поставил фрю на UFS2+SUJ, протестировал и ужаснулся. В сравнении с reiserfs оно читает файлы в 2 раза медленнее, а пишет в 3 раза медленнее. И никакие докрутки не помогали. Думал и вовсе на фрю забить, но решил напоследок попробовать ZFS. И оказалось, что ZFS имеет приемлемую производительность, не сильно отстает от линуксовой. И за счет сжатия кое где даже выигрывает.

включая систему

Пробовал пересобрать мир при помощи разных версий gcc - не собирается. Либо там что-то поломали при портировании на шланг, либо я не те мантры читал при сборке.

с помощью GCC 4.8, потом GCC 4.9, устанавливаемыми из портов и делая в каждом случае замеры производительности.

Пробовал все собрать с GCC 4.8 - результат не изменился. Я более чем уверен, что с нестабильным 4.9 результат будет тот же, а то и хуже. Я больше склоняюсь к тому, что причина в самой системе, так как из трейса видно как медленно сисколы выполняются.

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

оно читает файлы в 2 раза медленнее, а пишет в 3 раза медленнее.

Уточнение: речь идет о рандомном чтении и записи, на мелкий и больших файлах. Скорость линейного чтения/записи не тестил, но подозреваю что оно не намного хуже чем в других fs.

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

Банально,

cd /usr/ports/X11/nvidia-driver

make config

Выбрал ACPI APM что-то вроде того, (пишу по памяти)

make install clean 

Вот тут-то и не пошло, что-то с kmod и вдобавок оно ругалось на отсутствие сорцов ядра.

Устанавливал через memstick с флешки. Болванки под рукой не было. Дальше через bsdinstall, sysinstall ....

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

На ZFS где-либо дедупликация включена?

Выключена. На серваке свободно 1.8Т стореджа при занятых в пару гиг. Дедупликацию делать глупо.

Завтра сделаю тест на файлике из tmpfs чтоб уже было определенно ясно насколько влияет файловая система на скорость выполнения php кода.

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

Завтра сделаю...

Не дотерпел я до завтра. :) Как видно ниже, один хрен...

 5454: 2.148741328 2.147703887 kevent(7,0x0,0,{0x6,EVFILT_READ,0x0,0,0x1,0x0},1,0x0) = 1 (0x1)
 5454: 2.149946275 0.000122524 accept(6,{ AF_INET 192.168.3.8:43966 },0x800756104) = 9 (0x9)
 5454: 2.150748078 0.000121387 read(9,"\^NC\^B\0\^O\0SCRIPT_FILENAME/\0"...,4100) = 586 (0x24a)
 5454: 2.152834963 0.000277186 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
 5454: 2.153637528 0.000199818 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
 5454: 2.154592179 0.000236355 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0) 
 5454: 2.155474743 0.000203065 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0) 
 5454: 2.156237619 0.000201236 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=16,blksize=4096 }) = 0 (0x0) 
 5454: 2.157079166 0.000200364 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=16,blksize=4096 }) = 0 (0x0) 
 5454: 2.157925159 0.000238852 stat("/home/httpd/www/system/web/tmp",{ mode=drwxr-xr-x ,inode=2,size=64,blksize=4096 }) = 0 (0x0) 
 5454: 2.158644236 0.000162956 lstat("/home",{ mode=drwxr-xr-x ,inode=4,size=6,blksize=4096 }) = 0 (0x0)
 5454: 2.159326045 0.000194907 lstat("/home/httpd",{ mode=drwxr-xr-x ,inode=8,size=3,blksize=4096 }) = 0 (0x0)
 5454: 2.160008014 0.000163576 lstat("/home/httpd/www",{ mode=drwxr-xr-x ,inode=11,size=7,blksize=4096 }) = 0 (0x0) 
 5454: 2.160689758 0.000161762 lstat("/home/httpd/www/system",{ mode=drwxr-xr-x ,inode=14,size=8,blksize=4096 }) = 0 (0x0) 
 5454: 2.161411702 0.000199888 lstat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=16,blksize=4096 }) = 0 (0x0) 
 5454: 2.162133861 0.000201000 lstat("/home/httpd/www/system/web/tmp",{ mode=drwxr-xr-x ,inode=2,size=64,blksize=4096 }) = 0 (0x0) 
 5454: 2.162856166 0.000203315 lstat("/home/httpd/www/system/web/tmp/info.php",{ mode=-rw-r--r-- ,inode=3,size=20,blksize=4096 }) = 0 (0x0) 
 5454: 2.163618541 0.000234691 stat("/home/httpd/www/system/web/tmp/info.php",{ mode=-rw-r--r-- ,inode=3,size=20,blksize=4096 }) = 0 (0x0) 
 5454: 2.164461226 0.000083277 setitimer(2,{0.000000, 60.000000 },0x0) = 0 (0x0)
 5454: 2.166104597 0.000081709 sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
 5454: 2.166867893 0.000119538 sigaction(SIGPROF,{ 0x8008c9f30 SA_RESTART|SA_SIGINFO ss_t },{ 0x8008c9f30 SA_RESTART|SA_SIGINFO ss_t }) = 0 (0x0)
 5454: 2.167549923 0.000119198 sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
 5454: 2.168193421 0.000082055 sigprocmask(SIG_UNBLOCK,SIGPROF,0x0) = 0 (0x0)
 5454: 2.169676131 0.000117784 getpid()          = 5454 (0x154e)
 5454: 2.170516290 0.000234516 stat("/home/httpd/www/system/web/tmp",{ mode=drwxr-xr-x ,inode=2,size=64,blksize=4096 }) = 0 (0x0) 
 5454: 2.171086799 0.000083632 setitimer(2,{0.000000, 30.000000 },0x0) = 0 (0x0)
 5454: 2.171688568 0.000080845 getpid()          = 5454 (0x154e)
 5454: 2.172370523 0.000120134 __sysctl(0x7fffffffc030,0x2,0x7fffffffc0f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
 5454: 2.173006263 0.000154285 __sysctl(0x7fffffffc030,0x2,0x7fffffffc1f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
 5454: 2.173607873 0.000081523 __sysctl(0x7fffffffc030,0x2,0x7fffffffc2f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
 5454: 2.174210484 0.000155809 __sysctl(0x7fffffffc030,0x2,0x7fffffffc3f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
 5454: 2.174811147 0.000081433 __sysctl(0x7fffffffc030,0x2,0x7fffffffc4f0,0x7fffffffc028,0x0,0x0) = 0 (0x0)
 5454: 2.198964382 0.000361466 open("/usr/share/locale/en_US.UTF-8/LC_CTYPE",O_CLOEXEC,0666) = 11 (0xb)
 5454: 2.199726190 0.000160650 fstat(11,{ mode=-r--r--r-- ,inode=139184,size=76132,blksize=65536 }) = 0 (0x0)
 5454: 2.200327764 0.000154557 fstat(11,{ mode=-r--r--r-- ,inode=139184,size=76132,blksize=65536 }) = 0 (0x0)
 5454: 2.201008907 0.000155659 lseek(11,0x0,SEEK_CUR) = 0 (0x0)
 5454: 2.201531719 0.000114863 lseek(11,0x0,SEEK_SET) = 0 (0x0)
 5454: 2.202334690 0.000356510 read(11,"RuneMag1UTF-8\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
 5454: 2.203978260 0.000194255 read(11,"@\^D\b\0@\^D\b\0@\^D\b\0@\^D\b\0"...,65536) = 10596 (0x2964)
 5454: 2.206586500 0.000156025 close(11)         = 0 (0x0)
 5454: 2.216978525 0.000236691 write(9,"HTTP/1.1 200 OK\r\nContent-type:"...,44) = 44 (0x2c)
 5454: 2.217981273 0.000359887 write(9,"<!DOCTYPE html PUBLIC "-//W3C//D"...,85805) = 81616 (0x13ed0)
 5454: 2.218743573 0.000120811 poll({9/POLLOUT},1,4000) = 1 (0x1)
 5454: 2.219625631 0.000235734 write(9,"tr><td class="e">SimpleXML </td>"...,4189) = 4189 (0x105d)
 5454: 2.220672910 0.000320945 stat("/home/httpd/www/system/web",{ mode=drwxr-xr-x ,inode=110568,size=16,blksize=4096 }) = 0 (0x0) 
 5454: 2.221470864 0.000119122 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
 5454: 2.222351314 0.000077675 getpid()          = 5454 (0x154e)
 5454: 2.223048076 0.000167806 setitimer(2,{0.000000, 0.000000 },0x0) = 0 (0x0)
 5454: 2.223931442 0.000123537 __sysctl(0x7fffffffd388,0x2,0x802785db0,0x7fffffffd390,0x0,0x0) = 0 (0x0)
 5454: 2.224933469 0.000204869 open("/dev/null",O_CLOEXEC,00) = 11 (0xb)
 5454: 2.225610111 0.000117778 fstat(11,{ mode=crw-rw-rw- ,inode=25,size=0,blksize=4096 }) = 0 (0x0)
 5454: 2.226419011 0.000128353 open("/dev/null",O_CLOEXEC,00) = 12 (0xc)
 5454: 2.227212690 0.000272711 __sysctl(0x7fffffffd420,0x4,0x0,0x7fffffffd410,0x0,0x0) = 0 (0x0)
 5454: 2.228023985 0.000280885 __sysctl(0x7fffffffd420,0x4,0x7e5900,0x7fffffffd410,0x0,0x0) = 0 (0x0)
 5454: 2.228742972 0.000121472 close(11)         = 0 (0x0)
 5454: 2.229347393 0.000085422 close(12)         = 0 (0x0)
 5454: 2.230063644 0.000199743 close(9)          = 0 (0x0)
 5454: 2.230986083 0.000160395 writev(0x2,0x7fffffffb400,0x2,0x10,0x7fffffb8eeba,0x802555e20) = 289 (0x121)
Общая производительность тоже никак не изменилась:
Requests per second:    1342.32 [#/sec] (mean)

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

Осталось протестировать Java EE 7.

Хорошо. Напишите что поставить, какой тест и как запустить.

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

http://www.spec.org/jbb2013/press/release.html

Угу. Сейчас пойду куплю его за $1,500 и буду бенчмаркить.

Тем более, какой смысл тестировать линуксовую жабу под фрей? Вы думаете что она будет быстрее чем в линуксе?

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

Под фрёй своя нативная Джава

OpenJDK - это печаль, а не Java. С ним кучу финансового софта типа клиент-банк не работает. А что и удается запустить - глючит.

Я вот сижу и теряюсь в догадках... Чего вы ожидаете от меня бросив ссылку на коммерческую тулзень?
а) вы думаете, что я заплачу из своего кармана $1500 чтоб запустить тест?
или
б) я брошу всё и поползу по просторам треккеров искать где можно скачать с кряком и без смс?

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

OpenJDK6, да, вызывал проблемы несовместимости. OpenJDK7 — это уже референсная имплементация Oracle JDK, не считая, конечно, примочку JavaFX.

Чего вы ожидаете от меня бросив ссылку на коммерческую тулзень?

Ну, раз нет возможности, тогда не дёргайтесь.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от iZEN

Вернемся к нашим делам насущным. При тесте ab ... фря грузит 8 потоков только на 30%. В то время как линукс на 100%. И еще... в соответствии с статистикой uwsgi, при запросе info.php во фре, происходит 1 CS, в то время как в линуксе 0 CS. Может во фре происходит задержка из за лишнего context switch? Может во фре где-то есть какой-нить sysctl kern.sched.disable.stupid.switch?

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

Я вообще не понимаю, зачем PHP использует sysctl.

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

так как из трейса видно как медленно сисколы выполняются.

У тебя 64 бита? Потому что у пингвина в 64 битах какая-то оптимизация сисколлов.

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

Потому что у пингвина в 64 битах какая-то оптимизация сисколлов.

Ну как так? 10-ка же сравнительно недавно вышла в стейбл. Неужели разработчики FreeBSD не сделали тоже самое? Епт...2014 год на носу а мы во фре sysctl деграем при каждом запросе и тратим кучу вычислительных ресурсов впустую. Мой мозг отказывается верить в этот тупизм...

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