ruby-on-rails – 使用Rails进行Ruby并发扩展

我们有一个社交网站运行,

Stunnel-> Haproxy-> Nginx->麒麟

我们在24核机器上运行了20个独角兽进程.

当我用200个请求和100个并发用户运行测试时,

50%的请求需要3694秒
  66%的请求需要4524秒
  75%的请求需要5444秒
  80%的请求需要5923秒
  90%的请求需要7676秒
  95%的请求需要10007秒
  98%的请求需要13841秒
  99%的请求需要18110秒
 100%的请求需要21987秒

我在Log中看到每个请求需要0.5秒才能完成,但最后一个请求完成它需要21秒.

如何在最短时间(4-5秒)内完成所有请求?我应该使用我的rails代码在0.10秒内完成它还是有什么方法可以更改我的服务器配置以使所有请求在5秒内完成?

最佳答案 记住每个独角兽实例吃掉~250Mb RAM

所以20只独角兽需要至少5 Gb RAM.
如果你超出RAM限制 – 他们开始工作极其缓慢:hibernate并通过重新加载Rails环境唤醒进程

尝试减少独角兽服务器的数量并进行测试

点赞