hhvm 3.10 VS php 7.0 実際のパフォーマンスを比較してみた

Page : ( 1 / 3 )


2015年12月3日、待ちに待ったPHP7がリリースされました。

PHP7といえば、よくHHVMとのパフォーマンス比較がされています。

WordpressやHello Worldベンチはよく見かけますが、
プロダクション側での実際のパフォーマンスはどうなのでしょう?

凄く凄く気になるところですね!

ということで、このサイトを使って軽くベンチマークを計測してみました。
( *このサイトは元々HHVMで動いているので、HHVM側の計測は容易でした )

サーバー環境

ローカルマシン上でVagrant+ Virtual Boxを使って同じ構成のサーバーを2台 用意しました。
1台は HHVM、もう一台はPHP7.0。 違う所は実行環境のみです。

- OS: Ubuntu 14.04.3 VirtualBox ( Vagrant )
- Vuatual Box: 5.0.10 ( Guest addition 込 )
- Memory: 2GB
- CPU: 1 core
- Web Server: nginx 1.8.0
- HHVM: 3.10.1
- PHP: 7.0 ( opcache有効 )
- DB: Mysql 5.6.27 ( 実際のテーブルのデーターを利用しました )
- Redis: 3.0.5 (on Memory Key-Value Store)
- Framework:  Lumen 5.1.6 ( Laravelコンポーネントを使ったライトウェイト フレームワーク )
- 共に "composer dump-autoload -o"コマンドで最適化しています

計測ツール
- Apache bench
- Laravel Debugbar

PHP7のインストール

# PPAレポジトリの追加
add-apt-repository ppa:ondrej/php-7.0

apt-get update

# エクステンション等のインストール
apt-get install php7.0-fpm php7.0-cli php7.0-common php7.0-json php7.0-opcache  php7.0-mysql php7.0-phpdbg php7.0-dbg php7.0-gd php7.0-imap php7.0-ldap php7.0-pgsql php7.0-pspell php7.0-recode php7.0-tidy php7.0-dev php7.0-intl php7.0-curl


Redisのエクステンションがまだ用意されていないので、
コンパイル、手動でインストールします。

git clone https://github.com/phpredis/phpredis.git
cd phpredis
git checkout php7
phpize
./configure
make && make install
rm -rf phpredis


コンパイルしたRedisエクステンションのインストール

cd /etc/php/mods-available
# Permissionの問題が出たら手動でredis.iniのファイルを作成して 
# extension=redis.soを追加してください
echo "extension=redis.so" > redis.ini

cd /etc/php/7.0/fpm/conf.d/
ln -sf /etc/php/mods-available/redis.ini ./20-redis.ini

cd /etc/php/7.0/cli/conf.d/
ln -sf /etc/php/mods-available/redis.ini ./20-redis.ini

service php7.0-fpm restart


nginxのconfファイルの設定

server {
    listen 80;
    
    # ファイルの場所
    root /home/vagrant/itBlog/public;

    index index.html index.htm index.php;

    # ドメイン
    #server_name _;

    error_page 404 /index.php;

    # hhvmの場合は必要
    #include hhvm.conf;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ /\.ht {
        deny all;
    }

    # hhvmの場合はこの項目は必要ありません
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }
}

インストール時に参照したサイト: Install-php7.md


環境とPHP7の導入は上記の様になります。

次のページでは実際にパフォーマンスを計測します。

この記事のカテゴリ
プログラミング

この記事に付けられているタグ