1

私は今日、Rackspaceの技術サポートと話していて、負荷に基づいてサーバーをスケールアップ/スケールダウンする簡単なソリューションを探していました。彼は、APIを介してプログラムで実行できると述べました。

誰かが実際にこれを以前に行ったことがありますか、またはこれに最善のアプローチをする方法について何かアドバイスがありますか?飛び込んで最初から書き直す前に、誰かがアウトラインコードやメモを持っているかどうかを知りたいです。

ありがとう!ウォーカー

4

1 に答える 1

2

ウォーカー、私が始めることをお勧めするのは、事前にサーバーを準備してから、監視ソリューションによって起動されたスクリプトを使用してサーバーを起動および停止することです。品質が承認されたサーバーを自動化された方法で一貫して展開できるようになった後でも、サーバーを作成するには約15〜20分かかります。したがって、どちらの方法でも、必要なときにリソースを準備する必要があります。

サーバーを手に入れたら、監視ソリューションを準備します。Nagiosはこのタスクに問題なく機能します。トリガーなどでイベントに応答できる監視ソリューションはすべて機能します。

使用率を管理する方法を理解して、スケーリングする方法はいくつかあります。

利用

これは、システム負荷/1秒あたりのリクエスト数+IOの集計された測定値である私たちにとってプロジェクトに固有のものです。少なくとも、負荷の平均を考慮してください。私たちのシナリオでは、システムがビジー状態になった理由を理解し、独自の使用率測定を実行したいと考えました。これをカスタム監視ソリューションに接続しました。スケールアップまたはスケールアウトする必要がある場合の使用率測定。

スケールアップする

リクエストを処理するために、より大きなサーバーへのスケーリングが含まれます。これは、文字通り、リクエストをサーバー化するために、より大きなサーバーに移行する必要があることを意味します。または、別の見方をすれば、リクエストがより大きなサーバーで提供される場合、リクエストのコストが削減されるということです。

私の経験では、スケールアップの必要性は短期的には減少します。負荷を処理するために最小仕様のサーバーが常に必要な場合は、平均使用率レベルが上がるはずです。使用率レベルが一貫して約60%になったら、スケールアップを開始します。

スケールアップにはコストがかかる可能性があるため、負荷のピークがある場合は、プールに別のサーバーを追加する方がよいでしょう。これがスケールアウトの仕組みです。

スケールアウト

ほとんどのプロジェクトでは、短期的にはスケールアウトがより一般的です。このプロセスでは、環境にホストを追加し、ロードバランサーを使用してリクエストを分散します。使用率レベルが60%以上に達すると、監視ソリューションのトリガーがホストを開始する要求を発生させます。負荷が中央値に戻ると、監視ソリューションはサーバーの電源を切ります。これは自動である必要があり、サーバーをオフに切り替えると、使用率レベルが上がるはずです。環境の中央値として40%の使用率を維持するように努めています。

複雑なのは、ロードバランサーの構成を自動化して、新しいホストを確認することです。サーバーの電源がオフになった後でも、ヘルスメジャーを使用するようにバランサーを事前構成している人を知っています。ロードバランサーは、停止したホストにトラフィックを提供しません。サーバーが起動すると、ロードバランサーはそれを再度認識し、サーバーへのリクエストの処理を自動的に開始する必要があります。

最終的解決

最小限の実行可能な環境を展開し、監視を設定して、独自の使用率レベルを監視します。選択した環境でサーバーを起動するトリガーを作成します。トリガーは、Rackspaceへの呼び出しを起動してサーバーを起動する要求を実行する必要があります。これは良いスタートです。

これがお役に立てば幸いです。そして、成功する環境を構築し続けてください。

于 2011-07-14T10:20:21.493 に答える