専用サーバーにおけるPHPパフォーマンス
アドオンでご提供している仮想専用サーバーでは、PHPスレッドやメモリ制限など、サーバーリソースの使用方法をよりきめ細かく制御することができます。
その基本的な仕組みは、弊社の標準インフラストラクチャのPHPパフォーマンス設定と同じですが、専用サーバーでは設定の挙動が異なります。
このページでは、専用サーバーにおけるPHPパフォーマンス設定の概要や、調整が必要となるケース、変更前に確認すべきポイントをご紹介します。
PHPパフォーマンス設定で制御できる内容
PHPパフォーマンス設定は、PHPリクエストを処理する際にサイトが使用できるサーバーの容量を定義します。専用サーバーでは、これらの設定は以下4つの関連する制限に基づいています。
- サーバーの総メモリ量:専用サーバーで使用可能なメモリの総量。そのサーバーでホストするすべてのサイトと環境で共有されます。
- 環境メモリプール:PHP が特定の環境(たとえば本番環境やステージング環境)で使用できるメモリの最大総量。その環境内でのPHPのメモリ使用量の上限です。
- PHPスレッド:サイトが同時に処理できるPHPリクエストの数。キャッシュされていない各リクエストは、使用可能なスレッドを必要とします。すべてのスレッドが使用中の場合、追加のリクエストはスレッドが空くまで待機することになります。
- スレッドあたりのメモリ:単一のPHPリクエストが実行中に使用できるメモリの最大量。インポートや複雑なクエリなどのリソースを大量に消費する操作の処理に影響します。
これらの制限は、「サイト」>(サイト名)>「PHPパフォーマンス」セクションの「変更する」をクリックして、調整することができます。

PHPの制限に達した場合の動作
サイトがPHPの制限に達した場合、その影響はどの制限に到達したかによって異なります。
PHP スレッド数の上限に達した場合:新たに受信したリクエストはキューに追加され、空きスレッドが利用可能になるまで待機します。
メモリ上限に達した場合:アプリケーション側で適切に処理されない限り、PHPのメモリエラーによりリクエストが失敗する可能性があります。
標準インフラの場合と同様に、専用サーバー上のサイトがPHP スレッドの空きがなくなりつつある、またはメモリの上限に達しているなど、これらの制限に近づいている、もしくは到達しているかどうかを確認するには、「サイト」>(サイト名)>「情報」画面に移動してください。「PHPパフォーマンス」セクションで各サイトのPHP パフォーマンス情報を確認できます。

専用サーバーにおけるPHPパフォーマンス設定の利用目的
専用サーバーにおけるPHPパフォーマンス設定は、想定される負荷に合わせて用意されたサーバーリソースをサイトがどのように使用するかを細かく調整するためのものです。
PHPスレッド数やメモリ上限を調整することで、特定の処理をよりスムーズに実行できる場合がありますが、これらの設定によってサーバー全体の処理能力が増えるわけではありません。これらの設定は、継続的なトラフィック増加や高い同時接続数に対応するためではなく、特定の条件下でPHPの処理挙動を管理する目的で使用するのが適しています。
継続的なトラフィック量の増加や高い同時接続数が原因でパフォーマンスの問題が発生している場合、PHPパフォーマンス設定を調整しても処理能力は向上しません。このような場合は、より大きな専用サーバーへのアップグレードを行い、想定されるトラフィック量に対応できるプランであることを確認することが適切な解決策となります。
PHPのパフォーマンス設定を調整することが理にかなっている状況
専用サーバーにおけるPHPパフォーマンス設定の調整は、リソースを多く消費するPHP処理に対応するために、サイトにより高い柔軟性が求められる特定のケースで有効です。これらの調整は、トラフィック量そのものではなく、PHPリクエストの挙動(実行時間、メモリ使用量、同時実行数)に基づいて行われるのが一般的です。
PHPのメモリ要件は、使用しているプラグインやコードの処理内容、実行される状況によって大きく異なるため、事前に計算して設定するよりも、実際の動作を観測したうえでメモリ上限を調整するのが適しています。
PHPスレッド数の要件は、キャッシュされていないPHPリクエストの処理にかかる時間や、それらのリクエストが同時にどれくらい発生するかによって左右されます。
これらの設定を調整することで効果が期待できる一般的なケースには、以下のようなものがあります。
リソースを多く消費する管理作業:大規模なインポートやエクスポート、一括更新、移行作業、バックグラウンド処理などは、より多くのPHPメモリや、より長時間実行されるスレッドを必要とする場合があります。
WooCommerce、LMS、会員制サイト:ログインユーザーがいるサイトや、決済処理、動的コンテンツを含むサイトでは、キャッシュされないPHPリクエストが多く発生するため、スレッド数やメモリ上限を調整することで改善が見込めます。
複数サイトの中で優先度の高いサイトがある場合:複数のサイトをホストしている専用サーバーでは、重要なサイトのPHP制限を引き上げたり、優先度の低いサイトの制限を下げたりすることで、トラフィック急増時のリソース競合を抑えることができます。
一時的に負荷の高い処理:定期実行ジョブやレポート作成など、頻度は低いものの多くのメモリやスレッドを必要とする処理は、制限を調整することで、より安定して完了させることができます。
これらの調整は、負荷の高い処理を PHP がよりスムーズに処理できるようにすることを目的としたものです。継続的なトラフィック増加や、多数の同時アクセスに対応するためのものではありません。
単一サイトとマルチサイトの専用サーバーの違い
PHPパフォーマンス設定がサイトに与える影響は、専用サーバーが1つのサイトのみをホストしているか、複数の独立したサイトをホストしているかによって異なります。
シングルサイトの専用サーバー
専用サーバーが1つのサイトのみをホストしている場合、PHPパフォーマンス設定の上限を引き上げても、一般的にリスクは低いと言えます。サイトはすでにサーバー全体のリソースを使用できる状態にあるため、上限を高く設定することで、負荷の高い処理時に PHPが利用可能なリソースをより効率的に活用できるようになります。
この構成では、特定のPHP制限そのものよりも、トラフィックの傾向やサーバー全体の処理能力が、パフォーマンスを左右する主な要因となります。
複数サイトの専用サーバー
複数のサイトが同じ専用サーバーを共有している場合、PHPパフォーマンス設定はリソース使用量のバランスを取るうえで、より重要な役割を果たします。
このような場合、次の点に注意が必要です。
1つのサイトの制限を引き上げると、負荷がかかった際にそのサイトがより多くのリソースを消費し、同じサーバー上の他のサイトとのリソース競合が増える可能性があります。
優先度の低いサイトやトラフィックの少ないサイトの制限を引き下げることで、重要なサイトをリソース競合から保護できます。
制限を完全に解除すると、1つのサイトで突発的な負荷が発生した際に、サーバー上のすべてのサイトに影響が及ぶリスクが高まります。
複数のサイトをホストする専用サーバーでは、PHP パフォーマンス設定は全体の処理能力を増やすためではなく、リソース競合を制御し、サイト間の影響を最小限に抑える目的で使用するのが適しています。
これらの設定を安全に使用する方法
専用サーバー上のほとんどのサイトでは、デフォルトのPHPパフォーマンス設定が、安全かつ効果的な基準として機能します。設定の調整は必須ではなく、明確な目的がある場合にのみ行うことをおすすめします。
PHP パフォーマンス設定を変更する際は、以下のベストプラクティスを考慮してください。
デフォルト設定から始める:PHPのメモリエラーが繰り返し発生している場合や、リソースを多く消費する処理がある場合など、具体的な必要性を特定できた場合にのみ変更を行ってください。
段階的に変更する:大きな変更は原因と結果の関係を把握しにくくなります。小さな調整を行うことでリスクを抑え、時間の経過とともに挙動を把握しやすくなります。
反映の遅れを想定する:PHP制限の変更は、適用直後ではなく、トラフィックの急増時や利用が集中する時間帯など、負荷がかかった状況で初めて影響が現れることが多くあります。
制限を引き下げる際は慎重に:PHPメモリやスレッド数の上限を、サイトの実際の要件よりも低く設定すると、レスポンスの低下やエラー発生率の増加につながる可能性があります。
同じサーバー上の他のサイトへの影響や、どの設定を調整すべきか判断が難しい場合は、大きな変更を行う前に弊社カスタマーサポートまでお問い合わせください。