1. 高同時実行アーキテクチャの関連概念
高同時実行の概念: 同時実行、高同時実行とは、通常、同時アクセスを指します。つまり、ある時点で同時に何人の訪問者が来るかということです。
2. 高い同時実行性の問題に関して、私たちは何を懸念すべきでしょうか?
qps: 1 秒あたりのリクエストまたはクエリの数。インターネット分野では、1 秒あたりの応答リクエスト (http リクエスト) の数を指します。スループット: 単位時間あたりに処理されるリクエストの数 (通常は QPS と同時実行性によって決定されます)。 ) 応答時間 (リクエストの送信と応答の受信にかかる時間)。たとえば、システムが http リクエストを処理するのに 100 ミリ秒かかります。この 100 ミリ秒のホルモン システムの応答時間は、pv: ページ ビューです。 、ページビューまたはクリック。訪問者は 24 時間以内に応答を受け取ります。Web サイトの同じページを閲覧した同じ人は 1 回だけカウントされます。つまり、同じです。訪問者は特定の時間範囲内に Web サイトを複数回閲覧し、1 人の独立した訪問者としてのみカウントされます。 帯域幅: 帯域幅サイズの計算 1 日の Web サイト帯域幅 = pv/統計時間の 2 つの指標に注意する必要があります。 (秒に変換) * 平均ページ サイズ (単位 kb) * 8qps は同時接続数と等しくありません。Qps は 1 秒あたりの http リクエストの数です。同時接続数は、システムによって処理されるリクエストの数です。同時に、1 秒あたりのリクエストのピーク数 (qps) = (合計 PV 数の 80%) / (6 時間の秒数の 20%): テストの最大同時実行数。 QPS 値テスト ツール: ab、wrk、http_loadab: 複数の同時スレッドを作成して、特定の URL アドレスに同時にアクセスする複数の訪問者をシミュレートできます。テスト対象は URL に基づいているため、Apache の負荷圧力をテストするために使用できます。はい、テストできます
3. ab ツールを使用する際の注意事項
テストマシンとテスト対象のマシンは分離する必要があります。オンライン サービスでストレス テストを実行し、テスト ツール ab が配置されているマシンとテストされたフロントエンド マシンの CPU、メモリ、ネットワークなどが最大制限の 75% を超えていないことを確認します
4. さまざまな QPS での解決策
最適化の例:
a、qps が 100 に達する
リレーショナル データベースの各リクエストが 0.01 秒以内に完了すると仮定します
1 つのページに SQL クエリが 1 つだけあると仮定すると、1000ps は 100 を意味しますリクエストは 1 秒以内に完了しますが、現時点ではデータベースを保証できません。クエリは 100 回完了できます
スキーム: データベース キャッシュ レイヤー、データベース ロード バランシング
qps は 800 に達します
100M の帯域幅を使用すると仮定します。これは、実際の帯域幅を意味しますWeb サイトのエクスポートの帯域幅は約 8M です
各ページがわずか 10K であると仮定します。この場合、同時実行条件下では、100M の帯域幅が使い果たされています
計画: CDN アクセラレーション、ロード バランシング
qps が 1000 に達します
静的 HTML キャッシュ
qps に達しますこのレベルで2000
。ファイル システムのアクセス ロックが大惨事になりました。
計画: 事業分離、分散ストレージ
5. 高同時実行ソリューションのケース
トラフィックの最適化: アンチホットリンク処理
フロントエンドの最適化: http リクエストの削減、非同期リクエストの追加、ブラウザーの有効化キャッシュ、ファイル圧縮、CDNアクセラレーション、独立した画像サーバーの確立
サーバー側の最適化: ページの静的化、同時処理、キュー処理
データベースの最適化: データベースのキャッシュ、サブデータベースとサブテーブル、パーティション操作 (ツールを使用して完了可能) )、読み取りと書き込みの分離、負荷分散
Web サーバーの最適化: 負荷分散 (リバース プロキシ、lvs を使用して負荷分散を実現)
以上が高い同時実行性と大規模なトラフィックのソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。