Welcome! Log In Create A New Profile

Advanced

nginx + built-in-sql-cache = performance fail

Posted by taychi 
nginx + built-in-sql-cache = performance fail
October 16, 2013 03:52AM
Здравствуйте уважаемые разработчики!

Есть проблема с производительностью nginx.

ситуация следующая:

0- разработан nginx-модуль, который при каждом http-запросе делает около 20 select'ов в MySQL
1- результат каждого запроса кешируем - т.е. получается около 20 кешей (реализованно несколько вариантов, см.ниже)

варианты рализации кешей:
0- "локальные" - для каждого воркера: хранение ассоцаитивный массив (std::map/rb-tree), нет блокировок, нет IPC
1- "общие" - общие для всех воркеров: хранение rb-tree, используется блокировки на запись, mmap
2- "внешние" - общие для всех воркеров - отдельный процесс: хранение rb-tree, нет блокировок, IPC (socketpair)

при сравнении производительности nginx'а (nginx_request): "без кешей" vs "с кешами" - всегда выигрывет вариант "без кешей"

выигрыш варианта "без кешей" всегда примерно один и тот же +100% (т.е. обрабатывает в 2 раза больше запросов)

Алгоритм вытеснения элементов кеша - удаляем по истечении "времени жизни записи" (ttl)

Я понимаю, что это лишь очень общее описание нашей системы. Вероятно есть какой-то архитектурный просчет, который может быть проблемой падения производительности nginx при кешировании sql-запросов.

Заранее спасибо за ответ!

PS: профилирование работы кешей - пока данных нет - сейчас делаем nginx-модуль для pinba_engine
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 179
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