PHP での高い同時実行性と大量のトラフィックの問題を解決する方法

不言
リリース: 2023-04-03 07:48:02
オリジナル
6279 人が閲覧しました

この記事では主に、PHP における高同時実行性と大量のトラフィックの問題を解決する方法を紹介します。一定の参考価値があります。今、みんなに共有します。困っている友達は参考にしてください。

基礎知識

## TFS: スループット (スループットとは、システムが単位時間あたりに処理するリクエストの数を指します)

RT: 応答時間 (リクエストが送信されてから応答までの時間)

同時ユーザー数: 同時にサイトにアクセスするユーザーの数期間内の時間

QPS: 1 秒あたりのクエリ レート (インターネット分野では、1 秒あたりのリクエストまたは応答、1 秒あたりの応答数 (HTTP リクエスト))

PV : ページビュー ページ訪問数

UV: ユーザービュー ユーザー訪問数

一般的には、日次pv (訪問数) が 1,000 万を超える場合、同時実行性が高いと計算できます。

毎日の Web サイトの帯域幅 = PV / 統計時間 (秒) * 平均ページ サイズ (KB) * 8

ストレス テスト

Apache 独自のストレス テスト ツール ab を使用することをお勧めします。

使用方法: Apache ディレクトリを入力し、現在のディレクトリで実行します (Windows):

ab.exe -n 总请求量 -c 并发请求量  http://请求地址
ログイン後にコピー

リクエストが完了すると、データ:

Server Software:        Apache/2.4.18	服务器类型
Server Hostname:        eko.xiao.com    域名
Server Port:            80				端口

Document Path:          /index.html  	请求文件
Document Length:        529 bytes		文件大小

Concurrency Level:      100				并发数
Time taken for tests:   1.240 seconds	总响应时间
Complete requests:      1000			请求数
Failed requests:        0				失败次数
Total transferred:      800000 bytes	总共传输数据量
HTML transferred:       529000 bytes	
Requests per second:    806.41 [#/sec] (mean)	QPS(每秒查询率)
Time per request:       124.007 [ms] (mean)		平均响应时间
Time per request:       1.240 [ms] (mean, across all concurrent requests)
Transfer rate:          630.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.4      1      38
Processing:    42  114  34.2    103     204
Waiting:       41  113  33.9    102     204
Total:         43  115  34.5    104     207

Percentage of the requests served within a certain time (ms)
  50%    104
  66%    117
  75%    133
  80%    136
  90%    173
  95%    197
  98%    204
  99%    204
 100%    207 (longest request)  
ログイン後にコピー

最適化

QPS が増加するにつれて、各段階で異なる最適化手段が必要になります。最適化計画はハードウェアやネットワークの条件にも関係します。

QPS が 50 に達します

最適化は必要ありません

QPS が 100 (データベース層) に達します

各データベース クエリが 0.01 秒で、各ページがSQL クエリが 1 つだけの場合、この時点でデータベースの制限に達します

最適化対策: データベース キャッシュ、データベース ロード バランシング、redis、memcache

#QPS が 800 (ネットワーク帯域幅) に達します

各ページが 10K しかないと仮定すると、800QPS では帯域幅が使い果たされてしまいます

# 最適化対策: CDN アクセラレーション ロード バランシング

QPS が 1000

# に達する 最適化対策:静的ページ

トラフィックの最適化:

リーチング対策処理

フロントエンドの最適化:

HTTP リクエストの削減

非同期リクエストの追加

ブラウザー キャッシュを有効にする

サーバーの最適化:

ページ静的

同時処理

キュー処理

データベースの最適化:

データベースキャッシュ

サブデータベースとテーブル、パーティション操作

以上がこの記事の全内容となりますので、皆様の学習のお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトにご注目ください。

関連する推奨事項:

php Daniel が共有した: PHP コード記述仕様、包括的な概要

PHP のインストールと概要Apache との統合

以上がPHP での高い同時実行性と大量のトラフィックの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート