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はあなたのプロジェクトのために作った最高の性能のコンパイルバージョンです.