nginx-0.7.8

Denis F. Latypoff denis at gostats.ru
Wed Aug 6 11:45:46 MSD 2008


Hello Igor,

Wednesday, August 6, 2008, 1:39:58 PM, you wrote:

> 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 ?

подозреваю, что дело не в DTD:

mod-xslt: creating dictionary for stylesheet
mod-xslt: reusing dictionary from /xxx/layout.xsl for stylesheet
mod-xslt: xsltParseStylesheetProcess : found stylesheet

[понеслась парсилка]

mod-xslt: parsed 51 templates
mod-xslt: Resolving attribute sets references
mod-xslt: Creating sub-dictionary from stylesheet for transformation
mod-xslt: Registered 0 modules
mod-xslt: reusing transformation dict for output

[понеслась транформация]

mod-xslt: freeing transformation dictionary
mod-xslt: freeing dictionary from stylesheet

похоже кеширование таблиц заложено (см 'reusing'), но не реализовано.


-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx-ru mailing list