0

私たちは、LAMP を使用してゼロからホステッド コンテンツ管理ソリューションを構築した Web 2.0 企業です。つまり、ユーザーはバックエンドにログインして Web サイトのコンテンツを管理し、API を使用してそのコンテンツを抽出します。この API は、インターウェブ上のどこでもホストできるテンプレートにプラグインされます。

スケーリングは次のように進行しました。

  1. 共有ホスティング (1and1)
  2. 専用の単一サーバー ホスティング (ラックスペース)
  3. 1 Web サーバー、1 DB サーバー (ラックスペース)
  4. バックエンド Web サーバー 1 台、API Web サーバー 1 台、DB サーバー 1 台
  5. Memcache、キャッシング、キャッシング、キャッシング。

問題は、私たちの次は何ですか?私たちのサイトの 1 つが人気のある Web サイトで掘られたり言及されたりするたびに、API サーバーは接続が多すぎてクラッシュします。または、DB サーバーがクエリでオーバーランするたびに、Web サーバーが要求をバックアップします。

これは明らかに、当社のような会社にとって「次の問題」であり、何か方向性を教えていただけないでしょうか。

私は現在、仮想化ソリューション (EC2 など) に惹かれていますが、考慮すべき点についていくつかの指針が必要です。

4

3 に答える 3

1

何を、どこで、どのようにスケーリングするかは、問題の内容によって異なります。何度か攻撃を受けており、それが API サーバーであることがわかっているため、実際に問題を引き起こしている原因を特定する必要があります。

DBルックアップ時間ですか?

存続期間が短いにもかかわらず、Web サーバーが処理できない大量の要求ですか?

API リクエストの処理に時間がかかりすぎていませんか? (DB ルックアップとは関係なく、たとえば、コードの実行に少し時間がかかりますか)?

問題が何であるかを特定したら、何をする必要があるかを明確に把握する必要があります。それが単なるリクエストの量であり、それが API サーバーである場合は、より多くの Web サーバー (および水平方向のスケーリングを可能にするコードの変更) またはより強力な Web サーバーが必要です。API リクエストに時間がかかりすぎる場合は、コードの最適化を検討しています。スケーラビリティに関しては、1 回限りの修正はありません。

最も一般的なスケーリングの問題は、リクエストごとに実際のコードの実行が遅い (2 ~ 3 秒) ことに関係しています。これにより、Web サーバーが増え、データベースとのやり取り (クロスサーバー セッションなど) が増えます。これは、データベースのパフォーマンスの問題につながります。memcache を使用した高性能のサーバーに依存しないコード (私は実際には memcache のラッパーを好むので、アプリケーションはどこからデータを取得するかを認識/気にしません。データを取得し、変換レイヤーが DB/memcache ルックアップと入力を処理するだけです) memcache)。

于 2009-10-13T21:26:39.403 に答える
1

ボトルネックが読み取りか書き込みかによって異なります。書き込みのスケーリングは、読み取りよりもはるかに困難です。

また、データベースにあるデータの量にも依存します。

データベースが小さいが、読み取り負荷に対応できない場合は、RAM に収まる十分な RAM をデプロイできます。それでも対処できない場合は、おそらく Web サーバーと同じボックスに読み取りレプリカを追加できます。これにより、優れた読み取りスケーラビリティが得られます。1 つの MySQL マスターからのスレーブの数は非常に多く、主に書き込みに依存します。ワークロード。

書き込みをスケーリングする必要がある場合、それはまったく別のゲームです。そのためには、データを水平方向 (パーティショニング/シャーディング) または垂直方向 (機能的パーティショニングなど) に分割して、互いの作業を行う必要のない複数の書き込みサーバーにワークロードを分散できるようにする必要があります。

EC2 で何ができるかはわかりませんが、本質的には、多かれ少なかれ存在しない SLA の最後に、非永続ディスクと低 IO パフォーマンスを備えた低速で高レイテンシのマシンを提供します。比較的迅速にプロビジョニングできるので、あなたの場合に役立つかもしれないと思います-それらをリードレプリカとして使用しているだけで、データが多すぎない場合(非永続ディスクと悪いIOがあることを思い出してください)

于 2009-10-13T21:29:30.060 に答える
0

あなたが探しているスケーリングのレベルは何ですか? 垂直方向のスケーリングなど、一時しのぎのソリューションですか? より戦略的なスケーリング プロジェクトである場合、現在のアーキテクチャは水平方向のスケーリングをサポートしていますか?

于 2009-10-13T21:18:47.057 に答える