新手问题 对于 Rails 的 QPS 疑问

zealinux · 发布于 2017年12月29日 · 最后由 msg7086 回复于 2017年12月30日 · 486 次阅读
2913

假设单台机器 16core, 单次请求 1s, 是不是代表着服务器的最大 QPS 是 16?

(puma + MRI)

共收到 8 条回复
6764
  • 要看 puma 的配置
  • 要看单次请求 1s,请求内部具体逻辑
2913

@42thcoder 比如puma workers: 8, threads: 16

假设内部逻辑最简单的算: sleep 1

De6df3

应该是低于 16,并发的时候,1s 的响应速度可能会变成 1.5s

3753

这个要分析你请求的1s是怎么组成的,如果db 900ms 程序100ms 你还要分析多并发的情况下 db的时间会不会增加

2913

这种情况下:那就不能说直接改成jruby能提高并发量了。

1

io wait 通过增加线程可以增加 qps,db 属于 io wait,sleep 好像也可以利用线程。

15139

workers 8 threads 16 不是会产生128线程吗?

如果你真的只配置总共16线程并且每个请求真的要花掉1秒的话,是的最多16qps。

所以实际运行中,这么慢的请求不会配置这么少线程的。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册