Gunicorn Timeout Is Not What You Think It Is

How you can get there So, you’re running your python web application using gunicorn in production, and you’re a good folk, you know that having requests without a timeout can be a bad idea. Imagine a long query loading your DB with the client already leaving your beautiful SAAS waiting for the results, whole UI becoming sluggish, yada-yada-yada. You Google stuff, likely entirely miss the documentation, and go on with some settings like --timeout 30 and call it a day. Or maybe you’ve been running a production Gunicorn set-up with a different type of worker in place, you’ve changed it, and were assuming that it’ll just keep working the way you assume it to work. ...

September 28, 2025 · 6 min · 1099 words · Andrei Sviridov

Anatomy of Graceful Shutdown: Part 5

Part 5: Prometheus Graceful Shutdown Part 1: Signals and Linux Part 2: Containers and signals Part 3: Graceful shutdown of K8S pods Part 4: Celery Graceful Shutdown Part 5: Prometheus Graceful Shutdown [you’re here] Part 6: Other frameworks and libraries [WIP] AI usage disclaimer Disclaimer: this article is very experimental in the way that it relies heavily on the AI agent to do the heavy-lifting of data extraction, following the article structure and proof-reading as the articles are getting pretty procedural. Here’s the prompt. It would require tinkering around and verification, as it tends to provide wrong code links sometimes and building the narrative structure that does not make a lot of sense for the human reader. ...

July 1, 2025 · 10 min · 2121 words · Andrei Sviridov

Anatomy of Graceful Shutdown: Part 4

Part 4: Celery Graceful Shutdown Process Part 1: Signals and Linux Part 2: Containers and signals Part 3: Graceful shutdown of K8S pods Part 4: Celery Graceful Shutdown [you’re here] Part 5: Prometheus Graceful Shutdown Part 6: Other frameworks and libraries [WIP] Change of the approach We’ve had enough generic theory in previous 3 articles, covering the kernel, application, container runtimes and high-level abstractions like K8S, so what’s next? I suggest to change the flow of the articles to overview of popular backend systems and how they handle graceful shutdowns, so that we have a perspective of the topic in the wild. ...

June 30, 2025 · 10 min · 2015 words · Andrei Sviridov

Anatomy of Graceful Shutdown: Part 3

[Disclaimer] I struggled a lot with writing this article, as K8S itself is way too big to grasp quickly and I had to make a lot of compromises on the structure and details for it all to make some sense. The article may feel dragged in some places, jumping from topic to topic yet I had to complete it, so sorry not sorry. GenAI has been used to generate the diagrams from the Kubernetes, Container-D and RunC codebase. ...

June 6, 2025 · 12 min · 2480 words · Andrei Sviridov