Я написал веб-приложение, предназначенное для просмотра больших файлов журнала. Каждый файл журнала может превышать 500 МБ и будет содержать 100 тыс. Строк или меньше для каждого файла. Я использовал supervisord для управления запуском 8 экземпляров торнадо и nginx для перенаправления запросов на каждый из 8 экземпляров торнадо. После развертывания я заметил, что запросы блокировались, и была тонна использования памяти.Nginx и Tornado: отправка больших файлов на http-клиент
Моя текущая реализация просто читает каждую строку из файла один за другим и отправляет ее через веб-узел. Я решил общаться через websocket, так как это позволило мне показать прогресс пользователю. Это работает хорошо, когда есть только один или два пользователя, но еще раз пользователи начинают отправлять запросы на загрузку файлов, которые сервер боксирует.
Я надеюсь, что кто-то может посоветовать мне лучший способ отправить большой файл клиенту для просмотра в своем веб-браузере без блокировки будущих запросов. Одновременно с загрузкой файлов журнала может находиться от 30 до 50 пользователей. Я прочитал решение this и, похоже, это то, что мне нужно, но я не знаю, является ли это лучшим решением.