Все

Как выжать 1 000 000 RPS

Видео backend search
Расскажу, как мы в порядке эксперимента выжимали 1 миллион запросов в секунду из 1 физического сервера и СУБД, никогда при этом НЕ рассчитанной на именно такой workload (спойлер: СУБД всё ещё Сфинкс).

  • Почему выжимали именно ~1 миллион (а не ~0.1 или ~10м).
  • В каких местах обнаружились тормоза (спойлер: в разных и поначалу несколько удивительных).
  • Как получилось подлечить 3+ места с разумной трудоемкостью и немедленно закатить эти успехи в бой (тизеры: не обошлось без пары строчек ассемблера, причем, что удивительно, сервер Intel, а ассемблер понадобился ARM; не обошлось без легких лок-фри-фокусов; не обошлось без переписывания простеньких системных вызовов вручную и прочей легкой наркомании).
  • Чего в итоге получилось.
  • Где ещё есть известные диоды, которые уже так просто не залечить.
  • Ну и совсем вкратце — как теоретически атаковать следующие вершины (10+ миллионов RPS).

Тезисы и презентация