Назад | Перейти на главную страницу

Bugzilla очень медленная на EC2, RDS PostgreSQL

Эта проблема

Я установил Bugzilla на экземпляр EC2, используя PostgreSQL RDS в качестве базы данных. После внесения нескольких десятков ошибок 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

Журнал доказательств

Пример из журнала 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"

Анализ БД

Естественно, я заподозрил базу данных, поэтому запускаю следующее:

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';

Что дало:

 datname | usename |    duration     | waiting | state |                   query_text
---------+---------+-----------------+---------+-------+------------------------------------------------
 bugs    | bugs    | 00:00:39.899945 | f       | idle  | SELECT value FROM bug_status WHERE is_open = 1

Думаю, это нормально - запроса не ждет. Когда я выполнил тот же запрос в отдельном клиенте, он немедленно вернулся.

Крик о помощи...

Есть идеи, почему Bugzilla так медленно работает в моей системе?