CPUアーキテクチャ・ホスティング は、ウェブサーバーのリクエスト処理速度に直接影響する:高いクロックスピードはシングルスレッド性能を高め、大きなキャッシュはデータアクセス時間を短縮し、TTFBをナノ秒台に押し上げます。クロック周波数、コア数、L1-L3キャッシュがどのように相互作用し、PHP、MySQL、WordPressに実際にどのような影響を与えるかを説明します。.
中心点
- タクト はシングルスレッドのスピードを上げ、シリアルパーツを短くする。.
- キャッシュ RAMのレイテンシを減らし、TTFBを大幅に下げる。.
- L3/コア マルチテナントでは、純粋なコア数よりもカウントされる。.
- NUMA メモリ・パスとコヒーレンス・トラフィックに影響する。.
- ターボ とオールコア・ブーストが実効クロックレートを決定する。.
ホスティングにおけるクロック周波数と並列性
私の評価 クロック周波数 とコア数は常に同じですが、これはシリアル・コード・パスの方がクロック・レートに重きを置くためです。リクエストの解析、ルーティング、PHPの実行の一部、データベースのミューテックス領域は、高いベースクロックとオールコアターボに特によく反応する。高いコア数は並列性の高いAPIでスピードを示すが、シリアルな部分はクロックが低いと遅くなる。そのため、動的なサイトではクロックが高く、コアあたりのL3が豊富なCPUを好むことが多い。より深く掘り下げたい場合は、背景情報を ホスティングのクロックレート, シングルスレッドの優位性を説明し、典型的なワークロードを分類している。まさにこの焦点こそが、誤った判断を防ぎ、実際のワークロードを強化するのである。 パフォーマンス.
キャッシュ階層:L1、L2、L3とその影響力
CPUキャッシュは 略語 各レベルは時間を節約し、RAMアクセスを最小限に抑えます。L1は小さいが超高速のままであり、L2はコアあたりのヒット率を高め、L3は多くのスレッド用のホットセットを束ね、メインメモリからの絶え間ないリロードを防ぎます。ウェブ環境では、L1-L3でのヒットは、コンテキスト・スイッチの減少、I/Oの待ち時間の減少、最初のバイトまでの顕著な高速化を意味する。そのため私は、L3キャッシュがバイトコード、頻繁なクエリー結果、メタデータからなるホットセットを保持し、L1/L2が命令と狭いデータ構造を供給するように、ホスティング・ノードを計画している。基本的なことを読みたければ、以下を参照されたい。 ホスティングにおけるL1-L3 そこで明らかになるのは、なぜ強力なL3がしばしば追加的なL3よりも重要なのかということだ。 RAM の作品だ。.
| キャッシュ・レベル | 標準サイズ | レイテンシー | 共有 | ホスティングにおける効果 |
|---|---|---|---|---|
| L1 | ~コアあたり64KB | 非常に低い (ns) | いいえ | 厳しい命令/データボリュームを保持し、ホットループを高速化 |
| L2 | コアあたり256KB~1MB | 低 (ns) | いいえ | L1からのミスを減らし、L3とRAMを緩和する |
| L3 | 合計最大512MB以上 | 低 (ns) | 噫 | バイトコード、インデックス部分、ホットセットを保持する。 |
| RAM | GBエリア | より高い (µs) | システム全体 | ベースライン;ミスするとレイテンシが増加し、スループットが低下する |
TTFB、PHP、データベースへの実際の影響
私は、次のような方法で進歩を測っている。 TTFB とパーセンタイルは、ユーザーエクスペリエンスとSEOに直接影響するからです。L3がPHPバイトコード、Composerのオートロードマップ、WordPressのオプションからホットセットをバッファリングする場合、コールドミスは排除され、応答時間は顕著に短縮されます。同じことが、頻繁に行われるDBクエリにも当てはまり、結果セットやインデックス部分としてL3に残り、RAMにジャンプすることなく新しいヒットに利用できる。RAMアクセスが回避されるたびにキューが短縮されるため、並列性が高ければ高いほど、これらの効果は増大します。アクセス頻度の高いサイトでは、ウォームアップとプリロードがキャッシュを暖かく保ち、異常値を減らし、95パーセンタイルで安定させます。 負荷.
SMT/ハイパースレッディング、コア・アイソレーション、ノイジー・ネイバーズ
同時マルチスレッド(SMT)はスループットを向上させるが、実行ユニットのL1/L2リソースと帯域幅を分割する。短時間のリクエストが多いウェブスタックでは、SMTはしばしば1秒あたりのレスポンスを増加させるが、2つの „うるさい “隣人が同じコアに座っている場合、個々のスレッドのレイテンシを増加させる可能性がある。そのため私は、レイテンシが重要なプール(PHP-FPMフロントワーカーやDBスレッドなど)をそれぞれの物理コアに分離し、バッチジョブやキューワーカーにはSMTの兄弟コアを使わせている。こうすることで、兄弟間でキャッシュトラッシュを発生させることなく、シングルスレッドクロックを有効に保つことができる。マルチテナント・ホストでは、私はCPUアフィニティとcgroupsを使って、vCPUがL3スライスのコアに連続的にマッピングされるように制御している。これにより、キャッシュの干渉が減り、95パーセンタイルと99パーセンタイルが安定し、「ノイジー・ネイバー」効果が顕著に減衰します。.
ウェブスタックにおける分岐予測、μOPキャッシュ、プリフェッチャー
高い 国際刑事裁判所 最近のコアは、分岐予測器、μOPキャッシュ、データ/命令プリフェッチャによってホットループを高速化している。解釈コード(PHP)と「間接」ルーティングは、予測が難しいジャンプを生成することがあり、予測を誤ると数十サイクルのコストがかかる。私はホットパスを無駄のないものにし(条件分岐を少なくし、関数チェインを短くする)、µOPキャッシュの恩恵をより多く受けるようにしている。オートロード・マップの順序、プリロード、特大フレームワーク・パスのトラバースの回避により、命令ワークスペースがL1/L2に保たれます。データ側では、密な構造が役立ちます:狭い配列、短い文字列、少ないポインタ間接。アクセスが直線的であればあるほど、プリフェッチャはよりよく機能し、パイプラインはフルに保たれ、L3ヒットはより頻繁になる。.
NUMAとスレッド配置:待ち時間を回避する方法
マルチソケット・システムでは、私は次のことに注意している。 NUMA, スレッドがノードをまたいで外部メモリにアクセスしないようにするためだ。私は、PHP FPMプール、ウェブサーバーワーカー、データベースインスタンスを同じNUMAノードにバインドして、L3の優位性と短いメモリーパスを確保しています。これにより、コヒーレンス・トラフィックを減らし、ミス・レートを低く保ち、ピーク負荷時の予測可能性を向上させます。VPS環境では、ホットセットがL3スライス間でスイングしないように、ノードごとにvCPUクラスタリングを要求します。この配置を真面目に行えば、リクエストごとに驚くほど多くのマイクロ秒を節約でき、L3スライス間でホットセットが揺れ動くのをスムーズにすることができます。 ジッター.
コアあたりのL3を理解し、正しく評価する
私の評価 L3/コア 特にマルチテナントホストでは重要な基準である。高い総容量は、アクティブなコアあたりのホットセットに十分なスペースを提供し、多すぎるスレッドに分割されない場合にのみ、強い効果を発揮します。高い利用率では、プロセスが共有L3スライスを奪い合うため、カーブが傾き、ミスレートが増加します。このため、コア数は少ないが、コアあたりのL3が多く、クロックレートが高いモデルの方が、動的なサイトでは性能が高くなることが多い。シングルスレッド速度と並列性の関係については、以下のページで詳しく説明する。 シングルスレッドとマルチコアの比較, というのも、それこそが本当のところだからだ。 効率性.
ターボ、オールコアブースト、負荷時の実効クロックレート
私は効果的な測定を行っている。 タクト データシートの値だけでなく、実際の負荷の下で。ターボ機構は個々のコアをブーストするが、多くの並列要求がある場合、全コアをブーストし、CPUがこれをどれだけ長く維持できるかが重要になる。熱限界、電力予算、冷却ソリューションによって、クロックレートが数分後に崩れるか、安定したまま維持されるかが決まります。一定の負荷がかかるホスティングシナリオでは、オールコアのクロックが高く、L3に余裕のあるモデルが最も安定した時間を提供します。これは、レイテンシが予測可能なままであることを意味し、ピークが99パーセンタイルに入る異常値は少なくなります。 スケーリング より確実に走る。.
暗号、AVX幅とダウンクロック効果
暗号とベクトル命令は、TLS、圧縮、メディアパスを高速化するが、クロックトラップを引き起こす可能性がある。AVX2/AVX-512は性能予算に負担をかけ、CPUによってはクロックレートを大幅に下げるものもある。そのため、CPUプロファイルを分けています:TLSターミネーターや画像処理は専用コア(あるいは別ノード)で実行し、リクエストパーサーやPHPワーカーは高クロックレートの „高速 “Pコアに残す。AES-NIと最新のChaCha20実装は、負荷が適切に分散されていれば、レイテンシ・スパイクを発生させることなく強力なパフォーマンスを発揮する。ハイブリッドアーキテクチャ(E/Pコア)では、レイテンシが重要なスレッドをPコアに明示的に固定し、バックグラウンドワークにはEコアを使用させます。.
測定可能な主要数値IPC、欠場率、95パーセンタイル
私は観察する 国際刑事裁判所 (インストラクション・パー・サイクル)、ミス・レート、パーセンタイルがボトルネックを可視化するからだ。高いIPCは、パイプラインの供給が正しく、キャッシュがコアに供給されていることを示します。ミス・レートが上昇している場合は、キャッシュが小さすぎるか、配置が不適切か、スレッドの分散が不適切であることを示している。レイテンシのパーセンタイルでは、テール幅が広がっていないかどうかを調べます。私は、これらの重要な数値を使って、アップグレードを的を絞った方法でコントロールする。コアあたりのL3を増やすか、オールコアのクロックを向上させるか、あるいはクリーンなアフィニティーをもたらす。 カーブス また一緒に.
方法論:負荷をテストし、パーセンタイルを比較する方法
毎回実行する前に、OPcache、オートロードマップ、DBホットセットをウォームアップし、実際の効果が見えるようにする。それから、系統的に並列度を変化させ(RPSの階段やバーストプロファイルも)、ネットワーク側は一定に保つ。パーセンタイル評価とコネクション再利用のツールは、キャッシュヒットがどの程度有効か、キープアライブ戦略がL3を緩和するかどうかを示す。並行して、ミスピークとレイテンシの異常値との相関関係を認識するために、ハードウェアカウンターとスケジューラメトリクス(IPC、L1/L2/L3ミス、コンテキストスイッチ、ランキュー長)を記録する。95/99パーセンタイルが安定したときだけ、スループットを比較する。こうすることで、クロック低下、ターボ持続時間、キャッシュスラッシュが、単純なピークベンチマークよりも明確に認識できるようになる。.
練習:ウォームアップ、プレロード、ホットセット
持っている キャッシュ コールドミスが最初の訪問者に当たらないように、トラフィックが押し寄せる前にウォームアップする。PHP-OPcacheのプリロード、頻繁に使用されるWordPressルートへのping送信、DBクエリのプリウォーミングは簡単な手段だ。デプロイメントでは、特にバイトコード、オートロードマップ、プライマリインデックスパスのセグメントをL3に上げるウォームアップシーケンスを開始する。その後、TTFBの中央値と95パーセンタイルをチェックし、ウォームアップの成功を確認します。異常値があれば、アフィニティーを調整したり、ソケットあたりのプロセス数を減らしたり、不要なものを削除したりする。 プラグイン.
PHP 8: OPcache、JIT、FPM プロセスモデル
OPcacheはPHPスタックにとって最も重要なアクセラレータだ。なぜならOPcacheはバイトコードをメモリ上で安定に保ち、命令キャッシュに供給するからだ。私はOPcacheのメモリを増やし、実運用では頻繁なタイムスタンプのチェックを無効にし、集中管理されたクラスにはプリロードを使用します。PHP 8のJITは数値ルーチンで選択的に役立ちますが、命令フットプリントを増やします。典型的なWordPressのワークロードでは、キャッシュの局所性を悪化させることがあります。典型的なWordPressのワークロードでは、キャッシュのローカリティを悪化させることがあります。FPMでは、プロセスが常にリサイクルされず、ホットセットがL2/L3に残るように、pm = staticか、よく調整された動的設定にします。子プロセスが多すぎるとL3/コアが劣化し、少なすぎるとキューができる。.
MySQL/InnoDB: バッファプールとCPUキャッシュ、スレッドプールの比較
InnoDBのバッファ・プールはRAMヒットを決定するが、L3はホット・インデックス・レベルと小さな結果セットが繰り返し配信される速度を決定する。私は、上位のBツリー・レベルがL3のホット・セットに入るかどうか(アクセス局所性)を監視し、行を狭く保ちます:少数の、選択的なインデックス、データ型の一致、プライマリ・パスのカバーリング・インデックス。これにより、ランダムなメモリ移動を減らすことができる。必要であれば、スレッドプールで高並列度をスローダウンし、コンテキストスイッチとL3スラッシュを抑制する。DBプロセス、NVMe SSDのIRQキュー、影響を受けるvCPUグループは同じノードに配置されます。これにより、コヒーレンスのトラフィックが減少し、スキャン、ソート、結合が「コールド」リージョンに触れる頻度が減ります。.
ハードウェア・スタック:CPU世代、RAM、SSD、I/O
コンバイン CPU, RAMとI/Oにより、CPUがデータを待つことはありません。DDR5とPCIe 5.0を搭載した新しい世代は、より広い帯域幅を提供し、NVMe SSDがより速くリクエストを処理し、キャッシュがミスする頻度を減らすことを可能にします。エネルギー効率の高いモデルは、ユーロの電気代を節約し、ターボを長持ちさせ、ラック内の熱を低減します。重要:十分なRAMが必須であることに変わりはないが、上位ではキャッシュが動的ページのポップかトゥイッチかを決定する。予算が限られているのであれば、まずオールコアのクロックが高く、コアあたりのL3が多いCPUモデルにお金を投資し、次にスピードに注目することだ。 NVMe.
仮想化、コンテナ、IRQ制御
KVMとコンテナでは、トポロジーが重要です。私は、vCPUがNUMAノードの連続したコアとして提供され、ソケットを飛び越えないようにしています。Kubernetesでは、ポッドが実際のコアを受け取り、ホットセットがマイグレーションしないように、スタティックCPUマネージャーでCPUリクエスト/リミットを使用する。RSS/マルチキュー経由でネットワーク負荷をウェブワーカーを運ぶコアに分散し、IRQを同じNUMAノードにバインドする。また、NVMe SSDからのストレージ割り込みもこのドメインに移動させた。その結果、コンテキストスイッチの回数が減り、リモートヒットが減り、高い並列性にもかかわらずパーセンタイルが狭くなった。この „ホームハイジーン “は、ハードウェアのコストはかからず、キャッシュリソースをレイテンシを削減する場所に割り当てます。.
簡単にまとめると優先順位と購買チェック
優先順位は高い タクト, というのも、これらのレバーは動的なワークロードで最大のジャンプをもたらすからだ。それからオールコアのブーストをチェックし、実効クロックが落ちないように冷却を維持します。マルチテナンシーでは、vCPUごとに一貫したL3アクセスと明確なアフィニティーを持つ構成を選び、ホットセットがさまよわないようにします。ベンチマークでは、純粋なスループットのピーク値よりもTTFBの中央値と95パーセンタイルを重視します。この順序に従えば、顕著に高速なサイトを実現し、リソースを節約し、実際のパフォーマンスに悪影響を及ぼす高価なアップグレードを避けることができます。 針の穴 パス・バイ.


