Колба периодически зависает при возврате данных - PullRequest
0 голосов
/ 08 июня 2018

Я использую Flask 1.0.2 в Python 2.7.5 в CentOS 7.4.Время от времени (скажем, 20 или 30 процентов времени), возвращая значение из функции маршрута, зависает.Я проверил, что он доходит до оператора return, помещая запись в журнал непосредственно перед этим (эта запись отображается в журнале, даже когда вызов зависает).Это происходит со всеми моими функциями, поэтому для ясности я добавлю простейшее:

@my_app.route("/signingkey", methods=['GET'])
def signing_key():
    """
    signing_key:    Provides the client with the current signing key (the public portion of it) for the domain

    :return:        The contents of the public key
    """

    try:
        provision_app.logger.info("Providing signing key")
        return utility.get_signing_key(True), 200, CT_TP

    except Exception:
        return utility.get_exception_text(), 500, CT_TP

ПРИМЕЧАНИЕ: CT_TP = {'Content-Type': 'text / plain'}

ПРИМЕЧАНИЕ: utility.get_signing_key () возвращает фрагмент текста в виде объекта str

Я пытался вернуть объект flask.Response, но это не изменило симптомы.

Я запускаю приложение Flask через WSGI в Apache 2.4.6-80.Мой файл WSGI выглядит следующим образом:

import sys
sys.path.insert(0, '/opt/my_app/')
# noinspection PyPep8
from provision import my_app as application

А мой файл Apache conf.d выглядит следующим образом:

<VirtualHost *>
    WSGIDaemonProcess my_app user=my_app group=my_app threads=4 processes=8
    WSGIScriptAlias / /opt/my_app/myapp.wsgi

    <Directory /opt/my_app/>
        WSGIProcessGroup my_app
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

Сервер представляет собой виртуальную машину (kvm) с 4 VCPU и 8 ГББАРАН.Это приложение является единственной нагрузкой, которую должен выполнять сервер, и редко загружает ЦП выше 3% (ожидается, что оно будет выше, когда приложение будет запущено в производство, но на данном этапе тестирования практически нет нагрузки на сервер).

Я подумываю просто обнулить сервер и начать все заново, но мне бы очень хотелось узнать, что происходит с Flask.

Любая помощь, мысли или наблюдения были бы наиболееоценили.

...