$30 off During Our Annual Pro Sale. View details »

PiterPy #2 Быстродействие Python в Web. Постреляем по веб-серверу?

PiterPy #2 Быстродействие Python в Web. Постреляем по веб-серверу?

В докладе рассматривается как поведет себя простое python3 приложения на различных конфигурациях (uwsgi, gunicorn (Eventlet, Gevent)) в связке с различными хранилищами (MySQL, MariaDB, PostrgeSQL, MongoDB) под нагрузкой. Как средство генерации нагрузки использовался Яндекс.Танк.

Ivan Tsyganov

March 20, 2015
Tweet

More Decks by Ivan Tsyganov

Other Decks in Programming

Transcript

  1. Быстродействие Python в Web. Цыганов Иван Positive Technologies Постреляем по

    веб-серверу?
  2. Как все работает? database server application wsgi nginx client_1 client_2

    client_3 client_4
  3. WSGI

  4. Как тестировали? database application wsgi yandex-tank

  5. Тесты ✤ Простое Flask-приложение ✤ Запрос к базе по индексу

    ✤ Запрос к базе по индексу со смещением ✤ Перманентная нагрузка в течении 60 секунд
  6. Простое приложение 0% 25% 50% 75% 100% RPS m ax

    RPS avg Tim e m ax Tim e avg M em ory m ax M em ory avg C PU m ax C PU avg gunicorn uwsgi
  7. Запрос к базе по индексу

  8. Запрос к базе по индексу

  9. Победитель?

  10. Запрос по индексу со смещением (MySQL, MariaDB)

  11. None
  12. А что же gunicorn?

  13. None
  14. Mongo спешит на помощь!

  15. None
  16. Постоянная нагрузка 0% 25% 50% 75% 100% Time max Time

    avg Memory avg Memory max CPU avg gunicorn uwsgi
  17. Победитель! + Потребление ресурсов + Скорость + Гибкий конфиг -

    Тяжелые запросы к базе - Сложный конфиг
  18. Спасибо за внимание! @tsyganov_ivan https://www.linkedin.com/in/TsyganovIvan