I upgraded from Django 3.2.15 the latest on the 4.1.x branch, especially to get constraint validation. However, I’m getting a blizzard of OSError Too many open files. I’ve tried bumping the file limit to no effect.
Finally, I downgraded to 3.2.15 and the site runs smoothly once more. I’ve tried running on Gunicorn 20.0.4 & 20.1.0, with Uvicorn worker, configured like so:
import multiprocessing
import gc
bind = '127.0.0.1:1517'
backlog = 1024
cpu_count = multiprocessing.cpu_count()
workers = cpu_count if cpu_count < 8 else 8
worker_connections = 25
worker_class = 'uvicorn.workers.UvicornWorker'
threads = cpu_count
preload_app = True
timeout = 30
keepalive = 2
max_requests = 2000
max_requests_jitter = 200
I’ve not done anything with async ORM or views in 4.1, but I can’t downgrade permanently to 3.2 because I’ve extensively updated the code to take advantage of the constraint validation.
Has something changed about connection handling in 4.1?