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

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

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

15563b4bb24076f1801cd862f74ed3fe?s=128

Ivan Tsyganov

March 20, 2015
Tweet

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