ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: perl copy



On Fri, Dec 14, 2007 at 01:39:46AM +0300, Михаил Монашёв wrote:

> Здравствуйте Игорь,
> 
> IS> Прилагаемый  патч изменяет поведение ngx_http_perl_module - теперь
> IS> все возвращаемые из модуля данные копируются в память перла.
> IS> Существенного замедления быть не должно.
> 
> Если копируются небольши строки, то да. А если тело POST запроса будет
> копироваться, то задосить ИМХО будет намного проще.
> 
> Могу  предположить, что даже посылая 10000 запросов в секунду с куками
> размером в 4кб к двум nginx-ам с патчем и без него, производительность
> будет  отличаться  вдвое.  Приблизительно  такое  замедление  было, мы
> наблюдали при возвращении данных из XS-а в perl.

Ну вдвое на современных процессорах - это вряд ли.
4K 10000 раз в секунду - это 40M/s.
Такое легко тянет даже P3 семилетней давности - 1.2G/s:

grep CPU: /var/run/dmesg.boot 
CPU: Intel Pentium III (646.67-MHz 686-class CPU)

dd if=/dev/zero of=/dev/null bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes transferred in 0.690442 secs (593243096 bytes/sec)

Полученное число нужно умножить на два, так как dd сначала читает 4k из
/dev/zero, а потом пишет их в /dev/null, то есть копирование происходит два
раза.

А не самый новый amd64 x2 делает 5.6G/s:

grep CPU: /var/run/dmesg.boot
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ (2210.20-MHz K8-class CPU)

dd if=/dev/zero of=/dev/null bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes transferred in 0.142881 secs (2866722931 bytes/sec)


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.