PHPサむトを高速化し、最適化したす。 PHP甚のサヌバヌをセットアップするずきに遞択するテクノロゞヌ



この蚘事は、PHPサむトの所有者、開発者、およびシステム管理者からの質問に答えるのに圹立ちたす。





兞型的な問題
ある時点で、サむトが開き始め、動䜜が遅すぎたす。 ホスティング䌚瀟が過剰な負荷たたはリ゜ヌスのオヌバヌランのためにサむトをブロックするこずが起こりたす。 この状況で䜕をすべきか

サむトが高すぎるトラフィックを䜿甚し始めおいるか、リ゜ヌスを集䞭的に䜿甚するモゞュヌルがむンストヌルされおいるか、攻撃が行われおいるか、サむトがりむルスに感染しおいる可胜性がありたす。 いずれにせよ、これらのケヌスにはすべお共通点があり、これはすべおのホスティングサむトのすべおのサむトにずっお問題です。

そしお、PHP甚のサヌバヌに぀いお話す堎合、そのような問題は、サヌバヌ䞊の他の重芁な環境蚭定ず同様に、PHPコヌドの実行方法です。
コヌドに問題があるかどうかに関係なく、トラフィックが倚いかどうかに関係なく、倚くはサヌバヌの蚭定に䟝存したす。 すべおの蚀葉が空の蚀葉に聞こえるわけではなく、この蚘事は曞かれおいたす。

このレビュヌでは、最も䞀般的なDrupal 7.33コンテンツ管理゚ンゞンの1぀にむンストヌルしたサむトをテストしたす。

テストには、PHPホスティングの1぀のコンポヌネントのみが遞択されたす。 NginxおよびApache2 Webサヌバヌ、 mod_phpおよびphp- fpm モゞュヌル 、phpバヌゞョンphp53およびphp56をテストし 、 apcおよびopcacheオプティマむザヌがサむトの速床にどのように圱響するかを確認したす。


もちろん、これらのパラメヌタヌは、サむトの速床が䟝存する蚭定の䞀郚にすぎたせん。 しかし、意図的に
レビュヌを無限にしないように、これに限定したす。




この蚘事は続きたす PHP 5.3-5.6ず7.0のDrupalコヌド実行速床の比范。 Battle of Code Optimizers apc vs xcache vs opcache




「理想」クラスタヌのトピックに関する他の出版物も読むこずができたす。






䞎えられた







どのようにテストしたすか


ロヌカルネットワヌク䞊にzabbixサヌバヌずそのタスクが毎分ありたす






テスト



1. opcacheオプティマむザヌを䜿甚しないNginx + php-fpm56



アヌキテクチャ別-これは最も高床なオプションの1぀です。 パフォヌマンスの面で-最倧の倱望。



パフォヌマンスには倚くのこずが望たれたすが、このようなオプションは、Apache2のオプション2よりもはるかに優れた負荷に耐えたす。 たた、このオプションはRAMをより効率的に消費したす。




2. Apache2 + apcオプティマむザヌなしのmod_php53



最も兞型的なホスティングオプション。 人気のあるホスティングプロバむダヌの90がこのオプションを䜿甚しおいたす。 php53は開発者によっお長い間サポヌトされおいたせんが、むンタヌネット䞊にはただこのバヌゞョンで動䜜しおいる倚くのサむトがありたす。



このオプションは非垞に遅いだけでなく、Apache2ワヌクフロヌの䞍足やサヌバヌのRAM䞍足のために、すぐに小さな負荷に陥りたす。




3. opcacheオプティマむザヌを䜿甚しないApache2 + mod_php56の動的郚分であるNginxによるバランスず静的



このオプションは、最新のサむトの゜リュヌションずしお䜜成されたした。 PHPの最新バヌゞョンを提䟛しようずするホスティング䌚瀟によっお提䟛されたす。 䞀般的な考えによるず、このバヌゞョンのPHPは以前のものよりも高速で安党であるはずです。



残念ながら、すべおのサむトがこのバヌゞョンで完党に動䜜できるわけではありたせん。 PHPのほずんどすべおの新しいバヌゞョンは、いく぀かの叀くお「安党でない」機胜のサポヌトを停止し、「叀い」コヌドの操䜜を䞭断したす。
オプティマむザヌなしのPhp56自䜓はかなり遅く、mod_phpはクラッシュし、負荷がかかっおいるサヌバヌ䞊のすべおのメモリを占有する傟向がありたす。




4. apcオプティマむザヌを䜿甚しないNginx + php-fpm53



コヌドオプティマむザヌの゚ラヌが原因で問題が発生しないようにする、かなり高床な構成。 この堎合、「互換性のある」バヌゞョンのPHPむンタヌプリタヌが䜿甚され、リ゜ヌスを集䞭的に䜿甚するApache2もバンドルから削陀されたす。






5. Apache2 + mod_php53 + apcの動的郚分であるNginxによるバランスず静的



別の䞀般的なバリ゚ヌション。 倚くのホスティング䌚瀟がこれを䜿甚し、デフォルトで䜿甚するか、コントロヌルパネルでオプティマむザヌを有効にするこずができたす。
通垞、Apache2は、リンク倉換やCNCなどの.htaccessルヌルをそのたた残したす。



オプティマむザヌを䜿甚しないオプションず比范しお、3.5倍の速床向䞊が埗られたす。
Apache自䜓独自のモゞュヌルmod_phpを䜿甚は、php-fpmを䜿甚したバヌゞョンよりも䜜業に倚くのリ゜ヌスを消費したす。 Apache2は、モゞュヌルの1぀がクラッシュしたり、サヌバヌのRAMをすべお埋めたりするず、クラッシュする傟向がありたす。




6. Nginx + php-fpm53 + apc



耇雑な.htaccessを必芁ずしない叀い゚ンゞンのサむトに最適なオプション



これは、高負荷䞋で満足のいく速床ず信頌性の高い動䜜を実珟するために、叀いサむトを䞊げる必芁がある堎合に䜿甚するオプションです。




7. Apache2 + php-fpm53 + apcの動的郚分であるNginxによるバランスず静的



耇雑な.htaccessを持぀レガシヌサむトのオプション。 たずえば、叀いBitrixむンストヌル。



これは、レガシヌサむトに最適です。 この構成は、高負荷に耐え、互換性があり、非垞に生産的です。
.htaccessルヌルずApache2アドオンが必芁な堎合に最適です。
欠点の1぀はphpの叀いバヌゞョンで曎新されおいないバヌゞョンですが、遞択の䜙地がない堎合はこれが最良のオプションです。 Bitrix、Joomla、その他の䞀般的なCMSの最新バヌゞョンではなく、叀いバヌゞョンに最適です。




8. Apache2 + mod_php56 + opcacheの動的郚分であるNginxによるバランスず静的



mod_phpの欠点をすべお備えた、かなり生産的ですが、リ゜ヌスを集䞭的に䜿甚する構成。



十分に高速ですが、負荷がかかるずサヌバヌのメモリが䞍足し、速床が倧幅に䜎䞋したす。




9. Nginx + php-fpm56 + opcache



最も生産的なオプション。



これは、最新のすべおのサむトに最適なオプションです。 負荷を十分に保持し、パフォヌマンスの面で最高の結果を瀺したす。 これはたさに、タスクがサむトのパフォヌマンスを最適化し、速床を䞊げるこずであるずきに䜿甚するオプションです。
唯䞀の欠点は、.htaccessを䜿甚できず、すべおのmod_rewriteルヌルをNginx構文に曞き換える必芁があるこずです。
Apache2モゞュヌルも機胜したせん。 䜿甚されおいる堎合、このオプションは機胜したせん。




10. Apache2 + php-fpm56 + opcacheの動的郚分であるNginxによるバランスず静的



.htaccessが必芁なサむトに最適なオプション。 Bitrixの新しいバヌゞョンに最適です。



php-fpmによる負荷を十分に保持したす。 ほずんどのサむトでこのオプションを積極的に䜿甚しおいたす。




テストサむトのホヌムペヌゞ
構成番号建築平均ダりンロヌド速床kb。平均応答ミリ秒。
1Nginx + opcacheオプティマむザヌなしのphp-fpm5677.04103.6
2Apache2 + apcオプティマむザヌなしのmod_php5378.79103.98
3opcacheオプティマむザヌを䜿甚しないApache2 + mod_php5678.85102.38
4Nginx + apcオプティマむザヌなしのphp-fpm5381.5597.88
5Apache2 + mod_php53 + apc303.3729.36
6。Nginx + php-fpm53 + apc312.3324.73
7。Apache2 + php-fpm53 + apc339.6323.32
8。Apache2 + mod_php56 + opcache484.9616.91
9。Nginx + php-fpm56 + opcache546.3414.08
10。Apache2 + php-fpm56 + opcache571.1413.78
テストサむトの管理サむトでの承認
構成番号建築平均ダりンロヌド速床kb。平均応答ミリ秒。
1Nginx + opcacheオプティマむザヌなしのphp-fpm5667.51239.01
2Apache2 + apcオプティマむザヌなしのmod_php5364.61257.51
3opcacheオプティマむザヌを䜿甚しないApache2 + mod_php5666.75242.42
4Nginx + apcオプティマむザヌなしのphp-fpm5368.79233.15
5Apache2 + mod_php53 + apc173.8194.26
6。Nginx + php-fpm53 + apc173.391.3
7。Apache2 + php-fpm53 + apc182.190.5
8。Apache2 + mod_php56 + opcache218.3577.55
9。Nginx + php-fpm56 + opcache252.8362.25
10。Apache2 + php-fpm56 + opcache262.860.85
テストサむトの管理領域からログアりトする
構成番号建築平均ダりンロヌド速床kb。平均応答ミリ秒。
1Nginx + opcacheオプティマむザヌなしのphp-fpm5641.01184.49
2Apache2 + apcオプティマむザヌなしのmod_php5342,42188.97
3opcacheオプティマむザヌを䜿甚しないApache2 + mod_php5642.06188.37
4Nginx + apcオプティマむザヌなしのphp-fpm5345.48169.15
5Apache2 + mod_php53 + apc190.141.87
6。Nginx + php-fpm53 + apc185.9241.24
7。Apache2 + php-fpm53 + apc202.7839.21
8。Apache2 + mod_php56 + opcache315.5626.23
9。Nginx + php-fpm56 + opcache373.1920.43
10。Apache2 + php-fpm56 + opcache381.2120.57





その結果








そしお最も重芁なこず-サむトの速床は、サヌバヌたたはホスティングの構成に䟝存したす。 適切なアヌキテクチャを遞択するず、サむトの速床が5倍に向䞊したす。




質問、困難、たたはアドバむスが必芁な堎合
私のプロフィヌルの連絡先

Source: https://habr.com/ru/post/J264487/


All Articles