【发布时间】:2016-01-04 17:01:27
【问题描述】:
我编写了一个用于查看大型日志文件的 Web 应用程序。每个日志文件可以超过 500MB,每个文件包含 100K 行或更少。我使用 supervisord 来管理启动的 8 个龙卷风实例,并使用 nginx 将请求重定向到 8 个龙卷风实例中的每一个。部署后,我注意到请求被锁定并且内存使用量很大。
我当前的实现只是从文件中逐行读取每一行并通过 websocket 发送。我选择通过 websocket 进行通信,因为它允许我向用户显示进度。当只有一两个用户时,这很有效,但一旦有更多用户开始提交加载文件的请求,服务器就会陷入困境。
我希望有人可以建议我将大文件发送给客户端以便在他们的网络浏览器中查看而不会阻止未来请求的最佳方式。可以有 30 到 50 个用户同时加载日志文件。我已经阅读了this 解决方案,这似乎是我需要的,但我不知道这是否是最好的解决方案。
【问题讨论】:
标签: nginx tornado large-files