perl copy

Igor Sysoev is at rambler-co.ru
Fri Dec 14 10:30:34 MSK 2007


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





More information about the nginx-ru mailing list