The curious case of slow downloads
Apr 11, 2016Marek Majkowski

Summary
This post details a specific bug encountered with slow downloads of large binary files, primarily affecting mobile users. It describes the investigation process, identifying the root cause in NGINX's `send_timeout` and `reset_timedout_connection` settings, and crucially, the underlying Linux kernel behavior regarding socket writeability thresholds. The post highlights the asymmetry between socket readability and writeability in Linux and proposes solutions including adjusting timeouts, modifying buffer sizes, or patching NGINX with a `send_minimum_rate` option to better handle slow clients without abruptly terminating connections.