ポートフォリオ重かった話
当時の状況
RDSを見回りに行くと、およそ自分がポートフォリオを確認したタイミングからMySQLのコネクションが張りっぱなしでした。
以下、show processlist;の結果です。
解決の道
まず確認すること
今回はGo言語で初めてDBを使った。そして明示的にコネクションのCloseをしていなかった。
というわけでGoサーバーへのアクセスが原因の場合、リロードを増やせばコネクションも同じ量増えるはず。
確かめてみた。
増えた。
gormの仕様を確認
gorm.DBにはclose関数がないことがvscodeのサジェストで分かりました。
そのためググりました。
ありました。
解決
gormからsql.DBを取得し、閉じる。
// コネクション開始
db = gorm.Open(...)
...
// コネクションを閉じる
sqlDB, _ := db.DB()
sqlDB.Close()
感想
やっぱCloseはありましたね。よし。