Skip to content

Unicorn workers are restarted too often

On GitLab.com after looking into unicorn logs to check why the git push timings are not deterministic I saw that workers are restarted roughly every 3-5s. Giving the time required to kill worker and spawn another one (according to log) it is 400ms it appears that we build long backlog of request on unicorn masters.

W, [2016-05-19T23:20:35.944824 #12127]  WARN -- : #<Unicorn::HttpServer:0x000000036fd2b0>: worker (pid: 12127) exceeds memory limit (383347712.0 bytes > 333834411 bytes)
W, [2016-05-19T23:20:35.945003 #12127]  WARN -- : Unicorn::WorkerKiller send SIGQUIT (pid: 12127) alive: 6 sec (trial 1)
W, [2016-05-19T23:20:35.968973 #11488]  WARN -- : #<Unicorn::HttpServer:0x000000036fd2b0>: worker (pid: 11488) exceeds memory limit (387458048.0 bytes > 361337562 bytes)
I, [2016-05-19T23:20:36.333073 #1931]  INFO -- : reaped #<Process::Status: pid 12127 exit 0> worker=6
I, [2016-05-19T23:20:36.343287 #13165]  INFO -- : worker=6 spawned pid=13165
I, [2016-05-19T23:20:36.344133 #13165]  INFO -- : worker=6 ready

It looks like that we should increase memory limit for workers or separate workers that are processing git requests from other types.

cc @pcarranza @yorickpeterse