PHP 7を最高性能にするいくつかのTips
2187 ワード
1. Opcache
Zend Opcacheを有効にするのを覚えています.PHP 7はOpcacheを有効にしなくてもPHP-5.6よりOpcacheを有効にするのが速いので、これまでテスト時期にOpcacheを有効にしていなかった人がいたことがあります.Opcacheを有効にするのは簡単ですphp.iniプロファイルに追加:
1. zend_extension=opcache.so
2. opcache.enable=1
3. opcache.enable_cli=1"
2.新しいコンパイラの使用
新しいコンパイラを使用するには、GCC 4.8以上が推奨されます.GCC 4.8以上のPHPだけがGlobal Register for opline and executeを開くからです.dataサポート、これは5%程度の性能向上をもたらす(WordpressのQPS角度測定)
実はGCC 4.8以前のバージョンもサポートしていましたが、Bugがサポートされていることがわかりましたので、4.8以上のバージョンでなければこの特性を開くことはできません.
3. HugePage
私の前の文章も紹介したことがあります:あなたのPHP 7をもっと速くするHugepage、まずシステムの中でHugePagesを開いて、それからOpcacheのhugeを開きますcode_pages.
私のCentOS 6.5を例にとると、
1. $sudo sysctl vm.nr_hugepages=512
512個の予約された大ページメモリを割り当てます.
1. $ cat /proc/meminfo | grep Huge
2. AnonHugePages: 106496 kB
3. HugePages_Total: 512
4. HugePages_Free: 504
5. HugePages_Rsvd: 27
6. HugePages_Surp: 0
7. Hugepagesize: 2048 kB
そしてphp.iniに追加:
1. opcache.huge_code_pages=1
これにより、PHPは自身のtextセグメント、およびメモリ割り当て中のhugeを大きなメモリページで保存する、TLB missを低減して性能を向上する.
4. Opcache file cache
Opcache File Cache(実験的)をオンにします.これをオンにすることで、opcodeキャッシュを外部ファイルにキャッシュすることができます.スクリプトによっては明らかなパフォーマンスが向上します.php.iniに追加:
1. opcache.file_cache=/tmp
これによりPHPは/tmpディレクトリの下でOpcodeのバイナリエクスポートファイルをCacheし、PHPライフサイクルにわたって存在することができる.
5. PGO
私の前の文章:あなたのPHP 7をもっと速く(GCC PGO)も紹介したことがあります.もしあなたのPHPが専門的にプロジェクトのためにサービスしているなら、例えばあなたのWordpress、drupal、あるいは他の何かのために、PGOを通じてPHPを向上させて、あなたのこのプロジェクトのために性能を高めることを試してみることができます.
具体的には、wordpress 4.1を最適化シーンとする.まずPHPをコンパイルするときにまず:
1. $ make prof-gen
それからあなたのプロジェクトでPHPを訓練します.例えばWordpress:
1. $ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
すなわちphp-cgiをwordpressのトップページを100回走らせ、この過程におけるprofile情報を生成する.
最後:
1. $ make prof-clean
2. $ make prof-use && make install
この时あなたがコンパイルしたPHP 7はあなたのプロジェクトのために作った最高の性能のコンパイルバージョンです.