4

スケーラブルになるように Web サイトをどのように書き直しますか?(トラフィック) 私は主に PHP といくつかの Ruby on rails を扱っており、一般的な質問であることは知っています。知識を増やしたいので、アドバイスがあれば助かります。

前もって感謝します ;-)

4

4 に答える 4

14

これは非常に幅広い質問であり、明確な答えを出すのはかなり難しいでしょうが、いくつかのアイデアがあります。

  • まず第一に、事前に最適化しないでください!
    • アプリケーションが機能することを確認してください; それが最も重要なことです。
    • そして、必要になったときだけ最適化を始めましょう。
  • PHP自体は、一般的に適切に拡張できます。
    • Apache + PHPサーバーをさらにいくつか追加し、ユーザーの負荷を分散します
    • そして、これは本当に簡単に機能する傾向があります
  • ファイルシステムはそれほどうまくスケーリングしません/それは簡単です:
    • サーバー間で共有されません
    • ファイルシステムを共有すると(たとえば、NFSと)、問題が発生する場合があります。
  • スケーリングに関しては、データベースは一般的に最も難しい部分です。
    • 複数の「書き込み」サーバーを持つことは困難です
    • 一般にレプリケーションを使用して、2つ以上の「読み取り」サーバーを使用すると、メンテナンスが困難になる可能性があります。
    • レプリケーションが十分でない場合は、いつかシャーディングについて考える必要があります。
  • 多くのキャッシュを使用する:使用できるキャッシュが多いほど、DBに対して行うクエリが少なくなり、DBのパフォーマンスが向上します。
    • memcachedは素晴らしく、拡張性も良好です。サーバーを2、3追加するだけで、キャッシングクラスターにGBまたはメモリが2、3増加します。
  • リバースプロキシを使用すると、Apache+PHPサーバーの作業が少なくなります。


そして、あなたにいくつかのアイデアを与えるかもしれないリンクの簡単なカップル:

于 2010-03-01T17:33:56.093 に答える
2

1つのヒント-データベースに直接クエリを実行する代わりに、memcachedまたは同等のものを使用してデータをキャッシュします。

また、スケーリングの最も難しい部分は、単一のWebサーバーを超えて移動することです。2つのWebサーバーに拡張できるようになったら、さらに多くのWebサーバーに拡張するのにそれほど問題はないはずです。

于 2010-03-01T17:35:18.990 に答える
0

「スケール」は、普遍的で具体的な現象ではなく、特定の一連の基準の下でのパフォーマンスと容量の相対的な尺度です。したがって、この会話に意味を持たせるには、一連の基準といくつかのメトリックが必要です。

Apdexは、必要なメトリックについて考え、推論するための非常に便利なメカニズムであることがわかりました。

Apdex(Application Performance Index)は、企業のアライアンスによって開発されたオープンスタンダードであり、アプリケーションパフォーマンスをレポート、ベンチマーク、および追跡するための標準化された方法を定義します。

Apdex Indexのようなシステムの利点は、満足のいくアプリケーションの応答性に対するユーザーの認識に直接関係していることです。これらは、規模とパフォーマンスの議論で実際に重要な唯一のものです。

したがって、たとえば、このようにシステムについて考えるときは、ユーザーの応答性の期待を満たすために必要な応答率を決定し、サポートする必要のあるトラフィックのレベルを見積もり、目標を達成するための容量を追加します。

于 2010-03-01T23:13:53.480 に答える