この記事では、PHP における高い同時実行性と大規模なトラフィックのための最適化ソリューションについて紹介します。これには一定の参考値があります。必要な友人は参照してください。お役に立てば幸いです。
1 高同時実行性の概念
インターネット時代では、同時実行性および高同時実行性は通常、同時アクセスを指します。つまり、ある時点で同時に何人の訪問者が来るかということです。
II 高同時実行アーキテクチャに関連する概念
1. QPS (1 秒あたりのクエリ レート): インターネット分野では、1 秒あたりのリクエストまたはクエリの数を指します。 1 秒あたりの応答リクエストの数 (HTTP リクエストを参照)
2. PV (ページ ビュー): 総合的なビュー、つまりページ ビューまたはクリック、訪問者が 24 時間以内に訪問したページの数
--注: Web サイトの同じページを閲覧している同じ人は 1 つの pv としてのみ記録されます
##3. スループット (フェッチ/秒): 単位時間あたりに処理されるリクエストの数 (通常、QPS と同時実行性によって決定されます))4. 応答時間: リクエストが送信されてから応答が受信されるまでにかかる時間5. ユニーク ビジター (UV) : 特定の時間範囲内で、同じ訪問者が Web サイトに複数回アクセスし、1 人の独立訪問者の場合のみカウントされます6. 帯域幅: 帯域幅を計算するには、ピーク トラフィックと平均ページの 2 つの指標に注意する必要があります。 size7. 1 日あたりの Web サイトの帯域幅: PV/統計時間 (秒に換算) * 平均ページ サイズ (kb) *3 点注:
1. QPS は同時接続数と等しくありません (QPS は 1 秒あたりの HTTP リクエストの数であり、同時接続数はシステムによって処理されるリクエストの数です) 2. 1 秒あたりのピーク リクエスト数 (QPS) = (PV の合計数 * 80%) / (6 時間の秒数 * 20%) [訪問の 80% を表します。 ]3. ストレス テスト: テストが耐えられる同時実行の最大数とテストが耐えられる最大 QPS 値4. 一般的に使用されます。パフォーマンス テスト ツール [ab、wrk、httpload、Web Bench、Siege、Apache JMeter]4 つの最適化
1. QPS が 50 未満の場合 最適化計画: 一般的な小規模 Web サイトの場合、最適化を考慮する必要はありません#2. QPS が 100 に達すると、データ クエリのボトルネックが発生します
##最適化計画: データベース キャッシュ レイヤー、データベースの負荷分散3. QPS が 800 に達すると、帯域幅のボトルネックが発生します 最適化計画: CDN アクセラレーション、ロード バランシング4. QPS が 1000 に達すると最適化計画: HTML 静的キャッシュを実行します5。QPS が 2000 に達したら最適化計画: 事業分離、分散ストレージを実行します5 、高同時実行ソリューションのケース:
1. トラフィックの最適化
アンチホットリンク処理 (悪意のあるリクエストの削除)2. フロントエンドの最適化 (1) HTTP リクエストの削減[CSS、JS などのマージ](2) 非同期リクエストを追加します (最初にすべてのデータがユーザーに表示されるわけではなく、ユーザーはデータを非同期にリクエストする前にイベントをトリガーします)(3) ブラウザのキャッシュとファイル圧縮を有効にする##(4) CDN アクセラレーション
##(5) 独立した画像サーバーを確立する (I/O を削減する)#3。サーバーサイドの最適化
(1) ページ静的
(2) 同時処理
(3) キュー処理
4. データベースの最適化
(1) データベースキャッシュ
(2) サブデータベースとテーブル、パーティション
(3) 読み取り/書き込み分離
(4) ロードバランシング
5. Web サーバーの最適化
(1) 負荷分散を実現する nginx リバース プロキシ
(2) 負荷分散を実現する lvs以上が高い同時実行性と大規模なトラフィックのための PHP 最適化ソリューションの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。