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