メインコンテンツへスキップ
見出し画像

APサーバー増設の罠とは?仕組みをわかりやすく解説|台数を増やしてもシステム全体が止まる理由| vol.22

    この記事では、APサーバーを増設したことで、
    かえってシステム全体が停止してしまう「増設の罠」について解説します。

    プールサイズと台数の掛け算がデータベース側の上限を超える仕組みや、
    アプリケーション側を見ているだけでは原因に気づけない理由を
    整理します。


    お疲れ様です。花冷です🌸

    前回(vol.21)は、
    DB接続を使い回すコネクションプールのお話をしました。

    最後にこう書きました。
    アプリ側とDB側、両方に上限があると。

    今回は、その2つの上限がぶつかったときに起きる事故の話です。


    📍 今回のパケット旅の現在地

    画像

    【現在地】:5つ目のマス「AP & DB SERVERS」。
    DBへの専用通路を、さらに増やそうとしている段階です📍


    ❓ 増やしたのに、なぜ全部止まる?

    画面が重い。アクセスも増えている。 そこで出てくる判断が、これです。

    「APサーバを2台から4台に増やそう」

    ごく自然ですよね。処理する人を増やせば、さばける量も増えるはずです。

    ところが、この判断でシステム全体が沈黙することがあります。
    「少し遅くなる」ではなく、一切動かなくなるんです。

    なぜでしょうか。


    🧮 実は、算数で解けます

    前回の話を思い出してください。

    APサーバは、DBへの接続をあらかじめ何本か持っています(コネクションプール)。 そしてDB側にも、受け入れられる本数の上限があります。

    数字を入れてみましょう。

    増設前 AP 2台 × プール50本 = 100本 DB側の上限 150本 → 余裕あり ✅

    ここまでは問題ありません。では増やします。

    増設後 AP 4台 × プール50本 = 200本 DB側の上限 150本
    → 50本オーバー ❌

    見えましたか。

    AP1台あたりの設定は何も変えていません。 変えたのは台数だけ。 でも掛け算なので、台数を倍にすれば、要求する接続数も倍になるんです。


    💣 「もう受け付けられません」

    上限を超えたDBは、新しい接続を拒否します。

    Oracleだと、こんなエラーになります。

    ORA-00020: maximum number of processes exceeded

    怖いのは、特定の1台の問題ではないことです。どのAPサーバも同じように接続を取りに行くので、全台がエラーを引く可能性がある。

    結果、増設する前より状況が悪くなるわけですね。

    「サーバを増やせば性能が上がる」という直感が、
    ここではきれいに裏切られます。


    🔍 なぜ気づきにくいのか

    この事故、アプリ側だけ見ていても絶対に分かりません。

    • AP側の設定 → 変えていない

    • コード → 変えていない

    • 増やした台数 → 正しく動いている

    どこにも間違いがないんです。間違っているのは、掛け算の答えだけ。

    vol.14でも書きましたが、「遅い」「動かない」の原因は層をまたいで存在します。 これはその典型例ですね。


    🌸 余談:私は、増やす側にいました

    私は、増設の計画と試験に関わったことがあります。
    台数を決めて、検証して、問題ないことを確かめる作業です。

    AP側が限界でAP側を増設!して、
    接続数が増えた状態でのコネクションプールをDB側が満たせているか?

    これをきちんと予測しておかないと根本の解決にはならないので、
    新しいサービスやどれくらいの需要があるか未知数な状態では、
    気を付けておかない
    といけないポイントだと再認識できました。


    🌸 おわりに

    🔴AP増設の罠:
     台数を増やすと、必要な接続数も掛け算で増える
    🔴ORA-00020:
     DB側の上限を超えると、新しい接続が拒否される
    🔴気づきにくさ:
     アプリ側には間違いが1つもない

    インフラとアプリの境目って、
    どちらの担当者から見ても「相手側」に見えるところがあります。

    だからこそ、両方の言葉が分かる人が強いんだと思います。
    この連載を書いている理由も、そこにあります🚩

    さて、ここまでずっと論理の話でした。
    次回は、いちばん物理的な話を。

    ケーブルそのものに、流せる量の限界があるという話です!

    今日もお疲れ様でした✨
    また次回の記事でお会いしましょう〜!


    ⭐次回の記事はこちら!

    ⭐マガジンはこちら!

    📩質問はこちらまでどうぞ!


     
     

    花冷

     
     
    花冷(はなびえ)といいます。システムエンジニアです。 ”やりたいこと”の過程を赤裸々に記録しています。 ・開発ログ/学習ログ/メンターログ いつでも質問・依頼待ってます📩 ⭐現在、メンター経験を積みたいため、モニター募集中です!

    あなたへのおすすめ