うまさくの接続障害が発生しているのでデータベースのグレードアップしてみた


更新日:2023年11月13日

8月にアクセス負荷対策として
サーバー増設したのですが
最近になって、アクセス出来ないエラーが発生している。
その原因と対策をまとめました。

うまさくのアクセスが増えたので負荷分散対策してみた

うまさく運用トップ  更新日:2023年8月15日 うまさくロト予想の方のサイトの アクセスが増えてきたことで 閲覧しにくい時間などが出来たので サーバーの負荷対策を行いました。 2023年 ...

ー本ページについてー

どんな状況

まず、最初に
サーバーが接続しにくくなった場合に
常に自分でチェックするわけにもいかないので
さくらクラウドシンプル監視を使っています。
簡単に言うと
うまさくサイトに定期的にアクセスして
接続できない状態が何度か続いた場合に
メールなどで通知してくれる仕組み

こんな感じでいくつかのサーバーを監視しています。

その通知メールが
最近になって頻繁に来るようになりました。
上図のはメールが送られてきていたタイミングです。
かなりの頻度です。
時間帯を調べてみると
うまさくセレクトが頻繁に利用されている
お昼と夕方の販売締め切り直前でした。

原因は?

現在のサーバー構成図の
DB1サーバーの負荷が異常に高くなっていました。
下図のの部分のサーバーです。

原因は、うまさくセレクトでした。
うまさくでは、通常の分析ページ、公開予想については
予めプログラムでページを自動生成しており
リアルタイムにデータベースの参照と更新は発生しません。

ただ、うまさくセレクトについては
ボタンが押されたタイミングで
数字を生成するので、ボタンが押された数だけ
生成した数字、生成した人のニックネームなどの情報を記録するので
データベースの負荷はあがります。



postmasterのプロセスが異常に発生して残ってしまっています。

そして、LoadAvarageもCPUのコア数を遙かに上回ってます。
CPUのコア数が5に対して
LoadAvarageは19を超えてます。

さらに、負荷があがると
先ほどのサーバー構成図の
WEB1サーバーとWEB2サーバーから
DB1サーバーを参照した際に、データベースへの接続待ちが発生してしまい

レスポンスが遅くなり
監視ツールで障害発生と見なされて
エラーになっていました。

一部の利用者からうまさくセレクトが利用できない
トラブルが起きていたと思われます。

対策は?

うまさくセレクトの利用者が増えていることもあり
現在、1日のうまさくセレクトのデータ増加量は
10万件を超えています。

とりあえず、すぐにできる対策として
以下の対応を行うこととしました。

●データベースのアップグレード
●vaccumdb fullを実行

データベースを止めないと出来ない作業なので
2時間程度、メンテナンスにして作業を行いました。

データベースのアップグレード

データベースは
postgreSQL 9.6でした。
立ち上げ当初のデータベースのバージョンなので
9.6はかなり古いです。
今回アップグレードするバージョンは
出来るだけ最新で
アップグレードに失敗しないバージョンを選びました。

postgreSQL 14.10にしてみました。

postgreSQL9.6から14.6へアップグレードした人の
記事がインターネット上にありましたので
そちらの記事を参考にしました。

こちらの記事

特に問題なく移行出来ましたが
データベースの容量が100GB以上あったので
途中のデータコピー処理に1時間近くかかりました。

vaccumdb fullを実行

毎月1日の早朝に自動的に
vaccumdbは処理していたのですが
vaccumdb fullでは実行していなかった。
ただ、レコードの削除はそんなに発生しない仕組みなので
気にしていませんでした。

ただ、新しい機能を作ったりした時に作成したテーブルに
何度かデータ入れ替えたりしていたので
実際に、vaccumdb fullで実行したら
データ容量が半分に落ちました(😀
処理時間は1時間程度。

効果は?

まだ、1日程度しか見てないですが
今のところ、postmasterが異常に増えて
LoadAvarageを圧迫する状態にはなっていません。

ただし、毎月1日のvacuumdbを
昨日から毎日に変えて、今朝動かしていたら
LoadAvarageが20まで上がり
postmasterが増殖していました。

vacuumdbの取扱は注意することとして
しばらくは様子を見たいと思います。

年末年始にサーバー構成は見直す予定です。

宝くじは
年始は4日から
年末は28日ぐらいまで発売するので
うまさくのサーバー構成を変更できるのは
年末年始しかありません(😀

土日も翌週の番号選びでアクセスして頂いているので
安心して作業出来るのは
年末年始なんですよね...

でも、たくさんの人に利用してもらっているので
本当に感謝しています。
モチベーションあがります!

引き続き、ご利用ください。

-追記-
やはり、昼のアクセス集中時間は
アクセス出来ない状態になります。
そこで、うまさくセレクトのボタンは1秒経過しないと
再び押せないように対応しました。

(今までは0.5秒設定でした。)
これで少し様子を見ていきます。
うまさく支援
うまさくを気に入ってくれたら支援をお願いします!

うまさくは全て無料で運営しています。 今のところは有料にするつもりはありません。 ご安心してください! 現在は、広告を貼ることで 広告収入でなんとか維持しています。 これだけでは 全ての運用費用をまか ...

続きを見る

うまさくセレクト







© 2024 - うまさく -