Rails应用程序可以处理多少并发上载

时间:2010-10-06 03:30:42

标签: ruby-on-rails file-upload

我们希望在2到3分钟内上传几千个。大多数上传大约是20 - > 200 Mb。 从技术上讲,我认为上传与Rails没什么关系,而是WebServer(Apache / Nginx),所以只要服务器可以处理并发请求,那么Rails应用程序就没有多少工作要做(移动文件除外)正确存储并创建数据库记录以跟踪文件。)

我的假设是对的吗?通常,单个Rails应用程序进程可以处理多少并发上载? (鉴于Rails应用程序可能需要20毫秒进行所有计算,移动文件和创建数据库记录,但连接必须保持活动1分钟,以便文件可以成功传输)

1 个答案:

答案 0 :(得分:5)

不是真的,但很接近。单个rails应用程序实例一次只能处理一个请求,但使用nginx和passenger或mongrels以及负载均衡器可以很容易地使用具有这些实例池的服务器。

您应该创建一个负载测试来确认您的任何假设。

我会使用curl模拟使用多个进程上传几兆字节的10/100/1000用户,并调整上传速度以模拟慢速客户端,看看它会如何影响您的性能。测量10个并发请求的响应时间并记录并观察结果。

如果可以的话,您可以使用nginx上传模块并绕过rails,如果有帮助的话。始终测试你的假设。