nginx-0.7.8
Igor Sysoev
is at rambler-co.ru
Wed Aug 6 10:39:58 MSD 2008
On Wed, Aug 06, 2008 at 01:10:43PM +0700, Denis F. Latypoff wrote:
> Hello Igor,
>
> Tuesday, August 5, 2008, 11:00:11 PM, you wrote:
>
> > On Tue, Aug 05, 2008 at 10:51:59PM +0700, Denis F. Latypoff wrote:
>
> >> Hello Igor,
> >>
> >> Tuesday, August 5, 2008, 9:29:28 PM, you wrote:
> >>
> >> > On Tue, Aug 05, 2008 at 09:00:29PM +0700, Denis F. Latypoff wrote:
> >>
> >> >> Hello Igor,
> >> >>
> >> >> Tuesday, August 5, 2008, 8:23:03 PM, you wrote:
> >> >>
> >> >> > On Tue, Aug 05, 2008 at 05:19:20PM +0400, Igor Sysoev wrote:
> >> >>
> >> >> >> > > То есть, нужно искать по импортам до первого ненулевого mediaType ?
> >> >> >> > > Ну, и естественно, сначала проверять mediaType в самом xsl.
> >> >> >> >
> >> >> >> > Да. И encoding тоже.
> >> >> >>
> >> >> >> OK.
> >> >>
> >> >> > Патч. Те же и encoding.
> >> >>
> >> >> 1) s/ngx_log_debug1/ngx_log_debug3/ ngx_http_xslt_filter_module.c:780
> >> >> 2) на indent можно забить: "XSLT-процессор не обязан выполнять это
> >> >> требование, и в этом случае трудно
> >> >> предугадать точную форму вывода"
> >> >>
> >> >> Все в порядке, вроде потестил с многоэтажными import'ами, все как по
> >> >> спеке.
> >>
> >> > Новый патч. Включает всё, что было, + единственные копии XSLT-деревьев.
> >>
> >> Патч срежектил пару строк (в кое каких местах табуляция
> >> протиснулась), плюс пара полей у структур не синхронизировна с кодом
> >> (или наоборот), я интуитивно поправил, все в порядке, для каждого
>
> > Да, там есть некоторая рассинхронизация.
>
> >> location (около 20) прописал одну и ту же таблицу стилей, все в порядке.
>
> > Было бы интересно увидеть, есть ли какая-нибудь разница по сравнению с Апачём.
>
> # cat /etc/redhat-release
> CentOS release 4.6 (Final)
>
> # uname -a
> Linux monster 2.6.26 #1 Sat Jul 19 02:14:28 OMSST 2008 i686 i686 i386
> GNU/Linux
>
> # httpd -l
> Compiled in modules:
> core.c
> mod_perl.c
> prefork.c
> http_core.c
> mod_so.c
>
> + mod_apreq2.so + mod_rpaf-2.0.so + mod_xslt2.so
>
> StartServers 10
> MaxClients 10
>
> в обоих случаях nginx проксировал апача.
>
> #######################################################################
> 1) в апаче включен mod_xslt, в nginx выключен
>
> Concurrency Level: 10
> Time taken for tests: 121.974 seconds
> Complete requests: 10000
> Failed requests: 0
> Write errors: 0
> Keep-Alive requests: 10000
> Total transferred: 39990000 bytes
> HTML transferred: 37780000 bytes
> Requests per second: 81.98 [#/sec] (mean)
> Time per request: 121.974 [ms] (mean)
> Time per request: 12.197 [ms] (mean, across all concurrent requests)
> Transfer rate: 320.17 [Kbytes/sec] received
>
>
> PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
> 19860 daemon 20 0 10.0 0:14.82 1.1 16136 10m 3256 R httpd
> 19859 daemon 20 0 9.3 0:14.82 1.1 16136 10m 3256 R httpd
> 19861 daemon 20 0 9.3 0:14.82 1.1 16396 10m 3256 R httpd
> 19862 daemon 20 0 9.3 0:14.82 1.1 16400 10m 3256 R httpd
> 19863 daemon 20 0 9.3 0:14.82 1.1 16140 10m 3256 R httpd
> 19864 daemon 20 0 9.3 0:14.82 1.1 16400 10m 3256 R httpd
> 19865 daemon 20 0 9.3 0:14.82 1.1 16144 10m 3256 R httpd
> 19866 daemon 20 0 9.3 0:14.82 1.1 16136 10m 3256 R httpd
> 19867 daemon 20 0 9.3 0:14.82 1.1 16140 10m 3256 R httpd
> 19868 daemon 20 0 9.3 0:14.82 1.1 16400 10m 3256 R httpd
> 19850 daemon 20 0 3.3 0:00.96 0.4 6776 3992 656 S nginx
> 19898 root 20 0 0.7 0:00.14 0.1 2956 1136 804 S ab
>
> #######################################################################
> 2) в апаче выключен mod_xslt, в nginx включен
>
> Concurrency Level: 10
> Time taken for tests: 46.451 seconds
> Complete requests: 10000
> Failed requests: 0
> Write errors: 0
> Keep-Alive requests: 10000
> Total transferred: 31360000 bytes
> HTML transferred: 28930000 bytes
> Requests per second: 215.28 [#/sec] (mean)
> Time per request: 46.451 [ms] (mean)
> Time per request: 4.645 [ms] (mean, across all concurrent requests)
> Transfer rate: 659.29 [Kbytes/sec] received
>
> PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
> 19988 daemon 20 0 24.6 0:09.12 1.0 12376 9932 1132 R nginx
> 19965 daemon 20 0 8.0 0:07.90 1.0 14604 9.8m 2476 S httpd
> 19958 daemon 20 0 7.3 0:08.26 1.1 15628 10m 2936 S httpd
> 19959 daemon 20 0 7.3 0:08.16 1.1 15628 10m 2916 S httpd
> 19960 daemon 20 0 7.3 0:08.18 1.1 15624 10m 2900 S httpd
> 19961 daemon 20 0 7.3 0:08.12 1.0 14504 9.8m 2476 S httpd
> 19962 daemon 20 0 7.3 0:08.16 1.0 14604 9.8m 2476 S httpd
> 19963 daemon 20 0 7.3 0:08.24 1.0 14604 9.8m 2476 S httpd
> 19964 daemon 20 0 7.3 0:08.22 1.0 14604 9.9m 2476 S httpd
> 19966 daemon 20 0 7.3 0:08.12 1.0 14604 9.8m 2476 R httpd
> 19967 daemon 20 0 7.3 0:08.08 1.0 14604 9.8m 2476 S httpd
> 20007 root 20 0 1.3 0:00.18 0.1 2956 1144 804 S ab
Афигеть. Разница в 2.5 раза. А казалось бы - и там, и там основное время
уходит на парсинг XML и трансформацию по готовому дереву XSLT.
А что в Апаче делается с DTD в XML ?
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list