每秒100个或更少的请求(对于非缓存页面)是什么可以期待Rails?

cod*_*ing 6 benchmarking scalability ruby-on-rails

前言:请不要开始讨论过早优化或任何相关的问题.我只是想了解从带有rails的单个服务器可以获得什么样的性能.

我一直在rails 3上对ruby进行基准测试,看起来每秒我能获得的最高请求率是每秒100个请求.

我使用了nginx和Ruby 1.8.7的phusion乘客.

这是在ec2 m1.large实例上:

7.5 GB memory
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
850 GB instance storage
64-bit platform
I/O Performance: High
API name: m1.large
Run Code Online (Sandbox Code Playgroud)

该页面是一个非常简单的操作,它将一行写入mysql.

user = User.new
user.name = "test"
user.save
Run Code Online (Sandbox Code Playgroud)

我假设没有缓存(memcache等),我只是想了解原始数字.

我在同一个ec2实例上使用了apache bench,我使用了不同级别的请求数(从1000到10000以及不同数量的并发请求1/5/10/25/50/100).

tad*_*man 3

EC2m1.large实例确实没有那么快,因此这些数字并不令人意外。如果您想要性能,您可以选择更大的实例,因为现在有些实例具有 80 个 ECU,或者尝试不同的提供商。

我发现Linode通常以相同的价格提供更高的性能,但不够灵活,也无法扩展到大量服务器。如果您处于“20 台以下服务器”的部署阶段,那么它更适合您。

也不要认为MySQL是无成本的操作。