2014-02-06 129 views
0

我有一個Rails應用程序在過去6個月的生產運行,每週部署,沒有任何問題。亞馬遜RDS(Mysql2 ::錯誤110)

現在,我一直有一個反覆出現的問題約3周,它似乎每週最差。 當我的應用程序啓動和到達的地方嘗試連接到數據庫的點,我得到這個錯誤:

Can't connect to MySQL server on '***.amazonaws.com' (110) (Mysql2::Error) 

AFAIK,這個錯誤告訴我,我已經到了MySQL的最大連接數限制。

從配置,我應該能夠打開296連接。我的應用程序設置爲運行7個實例,每個數據庫連接池的數量爲5,因此部署新實例時不能超過70個連接。

我從來沒有見過AWS RDS控制檯或SHOW PROCESSLIST命令中的連接數超過20。

我不認爲它與Rails或我的應用程序服務器(Puma)有任何關係,因爲在發生問題時無法通過MySQL命令行工具進行連接。

有沒有人在RDS或MySQL本身上有類似MySQL的問題?

+0

'connection',也許? –

+0

請原諒我的法語 – Jim

回答

1

數據庫池不是每個應用程序,而是每個進程。如果它是每個實例的線程/多進程,它可能會使用更多。你有沒有嘗試重新啓動MySQL?聽起來你無論出於何種原因都有一些掛起的關係。

+0

我試圖避免重新啓動它,但我可能不得不這樣做。我讀RDS需要一段時間才能重新啓動實例,所以我無法在白天進行。如果連接掛起,我不會在進程列表中看到它們嗎? – Jim

0

我最近收到這些問題。它可能與我的RDS實例上的參數組的待定 - 重新啓動更改有關嗎?我當然不希望。據我所知,待處理的更改應該對當前的性能沒有影響。

+0

不是。我已經完成了重新啓動,現在沒有任何掛起。問題仍然存在。 – Sankalp