, чтобы представить свою конфигурацию, я следовал этому руководству до «Защита приложения»
https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04#step-4-%E2%80%94-configuring-uwsgi
Итак, мой .ini выглядит так:
[uwsgi]
module = wsgi:app
master = true
processes = 5
socket = myproject.sock
chmod-socket = 660
vacuum = true
die-on-term = true
В колбе я использую SQLAlchemy с этой конфигурацией:
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_POOL_RECYCLE'] = 299
app.config['SQLALCHEMY_POOL_TIMEOUT'] = 20
Мои конечные точки API похожи на разные темы, они получают параметры через get, process и возвращают json
@app.route('/api/theme1/subtheme1')
@auth.login_required
def get_test1(): ...
@app.route('/api/theme1/subtheme2')
@auth.login_required
def get_test2(): ...
@app.route('/api/theme1/subtheme3')
@auth.login_required
def get_test3(): ...
Теперь моя проблема, когда, например, я делаю 3 одновременных вызова (не другие вызовы API) к этим 3 процессорам конечных точек процесса uwsgi, который достигает 25% за вызов.
Я использую крошечный вычислительный движок, просто пока запускаю его, оперативная память предназначена для других тестов. n1-highmem-2 (2 виртуальных ЦП, 13 ГБ памяти)
Я гуглил и ищу здесь, и даже немного настраивая конфигурацию, я не могу уменьшить загрузку процессора, поэтому не могу улучшить общую производительность API.
Есть идеи, что я могу делать не так? Почему всплеск использования процессора?
Спасибо!