7

reddit のように、トピックごとに多数の賛成/反対票と多数のコメントがある Web サイトの場合、何を使用すればよいですか?

Lighttpd/Php または Lighttpd/CherryPy/Genshi/SQLAlchemy?

また、データベースの場合、MySQL (4.1 または 5 ?) または PostgreSQL のどちらがより優れたスケール/最速になるでしょうか?

4

5 に答える 5

8

Postgres の経験が限られているため、MySQL/PostgreSQL の質問にはお答えできませんが、私の修士課程の研究プロジェクトは、CherryPy を使用した高パフォーマンスの Web サイトに関するものでした。サイト。コモディティ ハードウェアで数千の同時ユーザーに簡単に拡張できます。

もちろん、PHP についても同じことが言えます。私は、PHP と CherryPy のパフォーマンスを比較する妥当なベンチマークを知りません。しかし、CherryPy が 1 秒あたりのリクエスト数が膨大なトラフィックの多いサイトを処理できるかどうか疑問に思っているなら、答えは間違いなくイエスです。

于 2008-10-15T14:11:29.777 に答える
8

理想的なセットアップはこれに近いでしょう:

キャッシング

つまり、nginxは高速で軽量な Web サーバー/フロント プロキシであり、独自のモジュールを備えており、ディスクや動的 Web アプリケーションにアクセスすることなく、memcachedの RAM ストアから直接データを取得できます。もちろん、リクエストの URL がまだキャッシュされていない場合 (または有効期限が切れている場合)、リクエストは通常​​どおり webapp に進みます。天才的な部分は、webapp が応答を生成すると、そのコピーが memcached に送られ、再利用できるようになることです。

これはすべて、Web ページだけでなく、AJAX クエリ/応答にも完全に適用できます。

この記事では、「バック」サーバーは http であり、具体的には mongrel について話しています。バックがFastCGIや他の(もっと速い?)フレームワークだったらもっといいです。しかし、nginx/memcached チームが負荷の大部分を吸収するため、それほど重要ではありません。

AJAX トラフィックの URL スキームが適切に設計されている場合 (REST が最適、IMHO)、ほとんどの DB を memcached に置くことができ、POST (アプリに渡されます) はプリエンプティブにキャッシュを更新できます。

于 2008-10-15T14:26:18.093 に答える
3

DB の質問では、PostgreSQL は MySQL よりも優れたスケーリングと優れたデータ整合性を備えていると思います。小さなサイトの場合、MySQL の方が高速かもしれませんが、私が聞いたところによると、データベースのサイズが大きくなるにつれて速度が大幅に低下します。(注: 私は大規模なデータベースに MySQL を使用したことがないので、おそらくそのスケーラビリティについてセカンドオピニオンを取得する必要があります。 ) しかし、PostgreSQL は間違いなく適切にスケーリングされ、トラフィックの多いサイトには適しています。

于 2008-10-15T16:31:15.377 に答える
2

より多くのデータが必要になります。Jeff は同じ問題に関するいくつかの記事を書いており、その答えは、パフォーマンスの問題が発生するまで待つことでした。

まず、誰がホスティングしていて、何が利用できるのでしょうか? あなたの社内タレントスキルセットは何ですか? 外部の会社を雇うつもりですか?彼らは何をお勧めしますか?新しいフレームワークを学ぶ意欲のあるチームとの真新しいプロジェクト?

2 つ目は、いくつかのモックアップを作成することです。インターフェイスはどのように機能しますか。ロードして永続化するために必要なデータは何ですか? アイデアは、Web と db 側の間のトラフィックを維持することです。たとえば、多くのクエリを含むおしゃべりなページはありません。等

データの要件とフローをよりよく理解したら、データベースの設計に取り掛かります。従うべきルールはたくさんありますが、より良いルールの 1 つは、正規化ルールに従うことです (そうです、私は db マニアです。なぜですか?)

これで、いくつかのページが作成されました。テストを実行してください。問題がありますか?はい、今それが何であるかを見てください。ページ サービングまたはデータベース プル ? 測定してから、行動方針を選択します。

于 2008-10-15T14:11:42.053 に答える
2

nginx + php + xcache + postgresql を使用します

于 2008-10-28T20:54:21.820 に答える