高同時実行性と大規模トラフィックのための PHP ソリューション
1 高同時実行性の概念
インターネット時代の同時実行性、高同時性通常、同時アクセスを指します。つまり、ある時点で同時に何人の訪問者が来るかということです。
ビデオ コースの推奨事項 →: 「数千万のデータに対する同時実行ソリューション (理論と実践)」
2 高同時実行アーキテクチャに関する概念
1. QPS (1 秒あたりのクエリ レート): 1 秒あたりのリクエストまたはクエリの数。インターネットの分野では、応答の数を指します。 1 秒あたりのリクエスト数 (HTTP リクエストを参照)
2. PV (ページ ビュー): ページ ビュー、つまりページ ビューまたはクリック、訪問者が 24 時間以内に訪問したページの数
--注: 同じ人があなたを閲覧している Web サイトの同じページは、pv
3 として 1 回だけ記録されます スループット (フェッチ/秒): 単位時間あたりに処理されるリクエストの数 (通常は QPS によって決定されます)および同時実行性)
4 、応答時間: リクエストから応答が受信されるまでにかかる時間
5. ユニーク訪問者 (UV): 一定の時間範囲内に、同じ訪問者が訪問します。 Web サイトを複数回アクセスしても、1 人の独立訪問者としてのみカウントされます
6. 帯域幅: 帯域幅、ピーク トラフィック、平均ページ サイズを計算する際には、2 つの指標に注意する必要があります
7. 毎日の Web サイト帯域幅: PV/統計時間 (秒換算) * 平均ページ サイズ (kb) * 8
3 つの注意点:
1 . QPS は同時接続数と等しくありません (QPS は 1 秒あたりの HTTP リクエストの数、同時接続数はシステムによって同時に処理されるリクエストの数です)
2. ピーク時のリクエスト1 秒あたり (QPS) = (合計 PV 数 * 80%) / (6 時間の秒数 * 20%) [訪問の 80% を表し、ボリュームは時間の 20% に集中します]
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 チュートリアル以上がPHP の高同時実行性と大規模トラフィックのソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。