Первоначально я использовал Cherrypy под apache2. Он загружал сжатый файл размером ~ 5-6 МБ примерно за 16 секунд. Также psycopg2 (библиотека postgresql для python) примерно в то же время извлекал поле json размером 19 МБ из небольшой таблицы.
Сервер работает на экземпляре digitalocean.
Я запустил speedtest-cli, который показал неплохую скорость (791,58 Мбит / с).
После множества попыток найти причину я решил протестировать простой флеш-сервер без apache2.
Интересно, что он показывает такую же производительность. (5,6 мб за 15 секунд)
Вот как я его запускаю:
from flask import Flask
app = Flask("web server")
@app.route("/")
def hello():
return "x" * (int)(1024*1024*5.6)
if __name__ == "__main__":
app.run(host='0.0.0.0')
Инструменты разработчика Chrome, показывающие: соединение инициализации 323 мс, отправленный запрос: 0,24 мс TTFB: 346 мс, загрузка содержимого: 14,45 секунды
Интересно, что там могло пойти не так?