Я пишу сервер opencv (3) python (3.6) с использованием фляги. Моя функция get выглядит следующим образом
@application.route('/getFinal',methods=['POST'])
def handleFinal():
# do some file creation, reading, saving file(using uuid to segregate from each other) to amazon s3 and opencv logic here
#appending output response to count number of responses occured
with open("test.txt", "a") as myfile:
myfile.write(f'outrequest {requestID}\n')
return json.dumps({'success':True}), 200, {'Content-Type':'application/json'}
И я включил threadaded = true в методе запуска приложения
application.run (хост = '0.0.0.0', нарезные = True)
Один запрос занимает 2 секунды. Я развернул код на эластичном бобовом стебле aws.
В настоящее время я работаю на сервере с 10 клиентами в секунду в течение 2 минут. Но после завершения нагрузочного тестирования выходной файл test.txt показывает 80 строк, что означает, что вместо желаемых 1200 (10 * 2 * было выполнено только 80 запросов ). 60) строки / запросы . Я думал, что это проблема с aws, которая по умолчанию настроена на 15 потоков и 1 процесс . Я изменил конфигурацию, чтобы иметь 100 потоков и перезапустил сервер. Но та же ошибка сохраняется (еще 80 запросов). Я попытался встроенный модуль потоков Python, чтобы найти общее количество активных потоков
print(threading.active_count())
Он выводит 21, хотя я установил общее количество потоков на 100. Где именно я иду не так