今天 在 linux 服务器上 想看看 sinatra 下某个请求的并发数量 能达到多少。 demo:
require "sinatra"
get '/demo' do
p "test"
end
然后用 thin start -p 4567 启动。。 用 ab 压测 ab -c 50 -n 2000 http://127.0.0.1:4567/demo Requests per second: 738.90 #/sec Time per request: 67.668 ms Time per request: 1.353 ms
这个请求很简单。 后来发现 sinatra 似乎还有提高并发更好的插件:sinatra-synchrony,官方说 对于网络并发有很大帮助。 官方地址:http://kyledrake.net/sinatra-synchrony/
于是按照官方做法试了一下: 增加了 require "sinatra/synchrony" 再次用 ab 压测 ab -c 50 -n 2000 http://127.0.0.1:4567/demo Requests per second: 784.88 #/sec Time per request: 63.704 ms Time per request: 1.274 ms
发现没啥变化。
官方提供 demo 和压测数据:
require 'sinatra'
require 'sinatra/synchrony'
get '/' do
'Sinatra::Synchrony is loaded automatically in classic mode, nothing needed'
end
$ ab -c 50 -n 2000 http://127.0.0.1:9292/ ... Requests per second: 3102.30 #/sec Time per request: 16.117 ms Time per request: 0.322 ms
相差太大。当然我也知道,服务器性能也会影响压测数据。 但是从数据上看 sinatra 插件性能体现不是很明显。。
不知道,大家在对于提供 sinatra 的并发,有哪些好的举措。。。。。