1 S postgres 5038 876 0 80 0 - 11962 sk_wai 09:57 ? 00:00:00 postgres: postgres my_app ::1(45035) idle
1 S postgres 9796 876 0 80 0 - 11964 sk_wai 11:01 ? 00:00:00 postgres: postgres my_app ::1(43084) idle
Run Code Online (Sandbox Code Playgroud)
我看到了很多.我们正在尝试修复连接泄漏.但与此同时,我们希望为这些空闲连接设置超时,最长可达5分钟.
我正在 Django 的开发服务器上运行 Django 应用程序,并使用 PostgreSQL 作为后端数据库。我收到这个错误:
django.db.utils.OperationalError: FATAL: sorry, too many clients already
Run Code Online (Sandbox Code Playgroud)
当我使用 Locust 进行负载测试时。我的 Locust 脚本使用 100 个并发客户端运行测试:
env.runner.start(100, spawn_rate=100, wait=True)
Run Code Online (Sandbox Code Playgroud)
我在SO上看到了几个答案,例如:
从这些线程中,我想我明白了错误的原因,但我仍然很困惑。如果 PostgreSQL 甚至无法处理 100 个并发客户端,那么它在现实生活中如何扩展?这与我使用开发服务器有什么关系吗?如果我使用 Gunicorn 有帮助吗?如果需要一些连接清理,我是否应该在 Locust 脚本中实现?我在这个领域还很陌生,所以如果这些问题的答案是显而易见的,我深表歉意。