I configured puma to use 3 processes and 1 thread. In application I am currently checking I have one really long request (~60 s). Problem is that puma is using mostly one process to run requests. So, I have:
p - puma main process
p1 - puma process 1
p2 - puma process 2
rn(x) - request number n that takes x second
so in such pipeline (request are fired in more less same time):
r1(0.2), r2(0.1), r3(60), r4(0.3)
the puma queue looks like this:
__________ p1: r1(0.2), r2(0.1), r3(60), r4(0.3)
/
p
\ __________ p2: iddle
what makes waiting for r4 for ages?
Why it is happening?