我正在运行一个 Django 1.8 站点,由 nginx 和 Gunicorn 提供服务,后端为 Postgres 9.4。
当我连续对站点的 API 进行大量数据密集型调用时,我注意到大约百分之一的查询失败,并提供 nginx 404 页面。
我的第一个假设是 Postgres 数据库在负载下嘎吱作响,但 Postgres 日志实际上向我显示了这一点:
2015-08-06 14:33:43 UTC:127.0.0.1(42287):dbuser@dbname:[3737]: LOG: could not send data to client: Broken pipe
2015-08-06 14:33:43 UTC:127.0.0.1(42287):dbuser@dbname:[3737]: STATEMENT: SELECT ... (psql statement)
2015-08-06 14:33:43 UTC:127.0.0.1(42287):dbuser@dbname:[3737]: FATAL: connection to client lost
2015-08-06 14:33:43 UTC:127.0.0.1(42287):dbuser@dbname:[3737]: STATEMENT: SELECT ... (psql statement)
Run Code Online (Sandbox Code Playgroud)
我认为这意味着 Postgres 实际上运行查询正常,但它无法将数据发送到客户端。
所以我认为要调试这个问题,我实际上应该看看 Django/Gunicorn/nginx。
我的理解正确吗?
postgresql ×1