7

単一のボックスに LAMP スタックをセットアップしたり、MySQL を独自のボックスに移動したりすることに関する情報はたくさんありますが、それ以上の拡張については十分に文書化されていないようです。

私の現在の Web 環境には容量の問題があるため、構成の調整、ボトルネックの特定、セキュリティなど に関するベスト プラクティスを探しています。

私は現在約 400 のサイトをホストしており、冗長性とセキュリティがかなり必要です。そのため、シングル ボックス ソリューションを超えて成長しましたが、完全な ISP または専用の Web ホスティング会社のレベルには達していません。

セキュリティと将来の拡張を考慮して、優れたApache Webファームをセットアップするための優れた専門知識を教えてくれる人はいますか?

私の Web 環境は、2 つの冗長 MySQL サーバー、2 つの冗長 Web コンテンツ サーバー、nfs を介してコンテンツをマウントし、それらの間で apache 構成とセッション ディレクトリを共有する 2 つの負荷分散フロントエンド Apache サーバー、および単一の「開発者用」サーバーで構成されています。 nfs 経由で Web コンテンツをマウントし、すべての開発者アカウントを含めます。

私はこのセットアップの多くにかなり満足していますが、時期尚早に負荷を窒息させているようです.

ありがとう!!

- アップデート -

「ロード時の窒息」はmod_log_sql、Apacheログをmysqlデータベースに送信するために使用するに関連していることがわかりました。SQLステートメントをディスクファイルに書き込むようにWebサーバーを再構成し、それらをデータベースに送信する別のプロセスを作成することにより、Webサーバーはスレッドをより迅速に解放し、より大きな負荷を処理できるようになります.

4

3 に答える 3

3

ボトルネックを特定し、改善をテストできる必要があります。

ボトルネックを特定するには、システムのレポート ツールを使用する必要があります。いくつかの例:

  • MySQL のクエリ ログは低速です。
  • Linux は、負荷平均、iostat、vmstat、netstat などの統計を提供します。
  • Apache には、アクセス ログとサーバー ステータス ページがあります。
  • プログラミング言語には、Pear Benchmarkなどのプロファイラーがあります。

これらのツールを使用して、最も遅い/最大の犯罪者を特定し、それらに集中します。実際にパフォーマンスが向上するかどうかを確認するために、改善と測定を試してください。

これは、次の 2 つの理由で終わりのないループになります。複雑なシステムには常に高速化できるものがあります。システムが成長するにつれて、さまざまな機能の速度が低下し始めます。

あなたのシステムの説明に基づいて、私の最初の予感は、NFS サーバー上のディスク io とネットワーク io であり、次に MySQL のクエリ時間を調べます。また、共有セッションのパフォーマンスも確認します。

于 2008-09-20T17:47:58.553 に答える
2

それを行う教科書的な方法は、実際の経験的データを使用してボトルネックを特定することです。

データベース、Apache、ネットワーク、CPU、メモリ、io ですか? もっと RAM が必要ですか、シャーディング( + )、DiskIO、NFS ネットワークの負荷、テーブル全体のスキャンを実行するための CPU はありますか?

問題がどこにあるかがわかると、コードの動作方法が原因で、インフラストラクチャをスケーリングするのに十分ではないという問題に遭遇する可能性があり、現在のセットアップのインスタンスをさらに作成するか、作成する必要があります。コードが異なります。

于 2008-09-20T15:49:58.137 に答える
0

また、スケーラビリティの観点からの最初のステップとして、コンテンツをEdgecastなどのCDNにオフロードすることをお勧めします。現在の2つのコンテンツサーバーを追加のWebサーバーとして使用します。

于 2010-06-02T19:55:19.287 に答える