Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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
    Постреляем по веб-серверу?

    View Slide

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

    View Slide

  3. WSGI

    View Slide

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

    View Slide

  5. Тесты
    ✤ Простое Flask-приложение
    ✤ Запрос к базе по индексу
    ✤ Запрос к базе по индексу со смещением
    ✤ Перманентная нагрузка в течении 60 секунд

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. View Slide

  12. А что же gunicorn?

    View Slide

  13. View Slide

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

    View Slide

  15. View Slide

  16. Постоянная нагрузка
    0%
    25%
    50%
    75%
    100%
    Time max Time avg Memory avg Memory max CPU avg
    gunicorn uwsgi

    View Slide

  17. Победитель!
    + Потребление ресурсов
    + Скорость
    + Гибкий конфиг
    - Тяжелые запросы к базе
    - Сложный конфиг

    View Slide

  18. Спасибо за внимание!
    @tsyganov_ivan
    https://www.linkedin.com/in/TsyganovIvan

    View Slide