fredley
fredley

Reputation: 33861

Why is gunicorn constantly telling me it has 4 workers?

I've just upgraded gunicorn to 19.1.1, and the log looks rather strange. The log level is set to debug, and it looks like this:

[2014-09-26 08:50:51 +0000] [13830] [INFO] Starting gunicorn 19.1.1
[2014-09-26 08:50:51 +0000] [13830] [DEBUG] Arbiter booted
[2014-09-26 08:50:51 +0000] [13830] [INFO] Listening at: http://127.0.0.1:8000 (13830)
[2014-09-26 08:50:51 +0000] [13830] [INFO] Using worker: eventlet
[2014-09-26 08:50:51 +0000] [13848] [INFO] Booting worker with pid: 13848
[2014-09-26 08:50:51 +0000] [13852] [INFO] Booting worker with pid: 13852
[2014-09-26 08:50:51 +0000] [13854] [INFO] Booting worker with pid: 13854
[2014-09-26 08:50:51 +0000] [13855] [INFO] Booting worker with pid: 13855
[2014-09-26 08:50:51 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 08:52:51 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 08:54:50 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 08:56:49 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 08:58:48 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:00:48 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:02:47 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:04:46 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:06:45 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:08:44 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:10:44 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:12:43 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:14:43 +0000] [13830] [DEBUG] 4 workers
[2014-09-26 09:16:42 +0000] [13830] [DEBUG] 4 workers

What's going on?

Upvotes: 2

Views: 403

Answers (1)

Joe Doherty
Joe Doherty

Reputation: 3948

This is all part of having it in debug mode.

This log is generated by gunicorn.arbiter.manage_workers() at ln 495

https://github.com/benoitc/gunicorn/blob/e0b3c42dd2c31b2f60abd6833401bd8eed116dc6/gunicorn/arbiter.py#L495

This is called during the main loop at:

https://github.com/benoitc/gunicorn/blob/e0b3c42dd2c31b2f60abd6833401bd8eed116dc6/gunicorn/arbiter.py#L165

If there is a signal it is also called after each signal.

If you can through the arbiter.py file for manage_workers() you will see where and how this is called.

Cheers Joe

Upvotes: 4

Related Questions