Bugzilla 在 EC2、RDS PostgreSQL 上非常慢

Ada*_*tan 5 postgresql bugzilla amazon-rds

问题

我在 EC2 实例上安装了 Bugzilla,使用 PostgreSQL RDS 作为我的数据库。在输入了几十个 bug 后,Bugzilla 变得难以置信的慢,我得到了很多超时。

在此处输入图片说明

服务器负载

机器很闲:

14:26:00 up 23 days,  4:40,  2 users,  load average: 0.15, 0.16, 0.25
%Cpu(s):  0.3 us,  0.3 sy,  0.1 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.2 st
Run Code Online (Sandbox Code Playgroud)

记录证据

来自 Nginx 日志的示例(为了安全而更改了主机名):

2014/07/16 14:18:32 [error] 6462#0: *5040 upstream timed out 
(110: Connection timed out) while reading response header from 
upstream, client: my.ip.my.ip, server: bugs.example.com, 
request: "POST /post_bug.cgi HTTP/1.1", 
upstream: "http://127.0.0.1:8081/post_bug.cgi", 
host: "bugs.example.com", referrer: "https://bugs.example.com/post_bug.cgi"
Run Code Online (Sandbox Code Playgroud)

数据库分析

自然,我怀疑数据库,所以我运行以下:

SELECT  datname,
    usename,
    now()-query_start AS duration,
    waiting,
    state,
    regexp_replace(query, E'[\\t\\n\\r\\s]+',' ', 'g' ) AS query_text
FROM pg_stat_activity
WHERE usename='bugs';
Run Code Online (Sandbox Code Playgroud)

这给了:

 datname | usename |    duration     | waiting | state |                   query_text
---------+---------+-----------------+---------+-------+------------------------------------------------
 bugs    | bugs    | 00:00:39.899945 | f       | idle  | SELECT value FROM bug_status WHERE is_open = 1
Run Code Online (Sandbox Code Playgroud)

我认为这是正常的 - 查询没有等待。当我在单独的客户端中执行相同的查询时,它立即返回。

大声求援...

知道为什么 Bugzilla 在我的系统上这么慢吗?