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
|