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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  5. Простое приложение
    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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. А что же gunicorn?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide