美洲狮服务器上的工作者和线程之间的区别是什么

时间:2015-03-11 10:06:01

标签: ruby-on-rails puma

假设网站上同时有100个用户,

以下设置之间的区别

哪种设置更明智/实用?

设置1

workers Integer(ENV['WEB_CONCURRENCY'] || 10)
threads_count = Integer(10)

设置2

workers Integer(ENV['WEB_CONCURRENCY'] || 20)
threads_count = Integer(5)

设置3

workers Integer(ENV['WEB_CONCURRENCY'] || 5)
threads_count = Integer(20) 

1 个答案:

答案 0 :(得分:1)

如果不了解应用程序的特性,这是一个艰难的决定,需要进行一些调整才能使其正确。

天真地,如果你有很长比例的长时间阻塞请求(调用外部API,类似于100 + ms左右),你需要更多线程,这样你的工作人员在处理该请求时不会空闲。如果您具有高吞吐量但所有请求都很快,那么您需要更多具有更少线程的工作者。