Welcome! Log In Create A New Profile

Advanced

Re: nginx-1.2.5

Anton Yuzhaninov
November 15, 2012 04:56AM
On 11/14/12 21:44, Maxim Dounin wrote:
> Но, честно говоря, я так подозреваю, что даже цифры выше - это,
> скорее всего, далеко не просто стоимость инструкций, а результат
> выбрасывания нужных данных из кеша процессоров из-за обновления
> счётчика (читай: cache line flush'ился, и route entry при других к
> ней обращениях приходилось перегружать из памяти). В этом месте
> nginx поступает как правильно, и счётчики держит отдельно от
> всего, да ещё и с отступом в cache line между ними.

Сама по себе операция изменения счетчика, разумеется очень дешевая. Весь эффект,
из за необходимости синхронизации кэшей CPU.
После того, как счетчик инкрементирован он сначала попадает только в локальный
кэш CPU. Если потом код работающий на другом CPU захочет инкрементировать этот
же счетчик, он должен будет подождать, пока первый CPU запишет эти данные в main
memory, и потом прочитть их оттуда. Для того, чтобы узнать сосотяние кэша (нужно
ли ждать и сколько ждать) используются разные протоколы для обеспечения cache
coherency, но почти все плохо масштабируются с увеличенимем числа кэшей. В итоге
при достаточно большом числе процессоров и ядер даже простой инкремент общего на
много CPU счетчика может стать узким местом.

В случае nginx наверно измеримого эффекта не будет - счетчики инкрементируются
относительно редко, на один http запрос выполняется много разной работы.

Но теоретически будет немного быстрее, если каждый воркер будет писать в свою
облать памяти, а скалдываться все эти счетчики будут только для чтения
статистики (т. е. относительно редко).

--
Anton Yuzhaninov

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx-1.2.5

Maxim Dounin November 13, 2012 09:00AM

Re: nginx-1.2.5

Nick Knutov November 13, 2012 03:54PM

Re: nginx-1.2.5

Валентин Бартенев November 13, 2012 04:34PM

Re: nginx-1.2.5

Nick Knutov November 13, 2012 04:48PM

Re: nginx-1.2.5

Валентин Бартенев November 13, 2012 05:58PM

Re[2]: nginx-1.2.5

Михаил Монашёв November 14, 2012 12:00AM

Re: nginx-1.2.5

Валентин Бартенев November 14, 2012 06:10AM

Re[2]: nginx-1.2.5

Михаил Монашёв November 14, 2012 11:02AM

Re: nginx-1.2.5

Maxim Dounin November 14, 2012 11:12AM

Re: nginx-1.2.5

Anton Yuzhaninov November 14, 2012 11:42AM

Re: nginx-1.2.5

Maxim Dounin November 14, 2012 12:46PM

Re: nginx-1.2.5

Anton Yuzhaninov November 15, 2012 04:42AM

Re: nginx-1.2.5

Anton Yuzhaninov November 15, 2012 04:56AM

Re: nginx-1.2.5

Maxim Dounin November 15, 2012 09:20AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 135
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready