CodeZine(コードジン)

特集ページ一覧

Zend Serverによる高性能PHP環境構築とパフォーマンスチューニングに役立つ監視機能

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/02/15 14:00

目次

文字コード設定の日本語化

 Zend Server CEは、英語環境を前提としています。マルチバイト文字を使用するために肝となるmbstringは、デフォルトで組込済みです。しかし、設定は、空白となっています。必要に応じて設定をしてください。

図6 mbstringのデフォルト設定
図6 mbstringのデフォルト設定

 UTF-8で使用する場合には、図7のように言語、内部文字コードなどを設定してください。

図7 mbstringの設定例(UTF-8の設定例)
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.detect_order = auto

MySQLの設定InnnoDBのプラグイン化

 Zend Server CEは、MySQL Community Serverを同時にインストール可能です。2011年1月現在、MySQL 5.1.50 がインストールされます。MySQL 5.1.50は、InnoDBの強化版であるPlugin1.0.11が利用可能です。デフォルトでは、旧来のInnoDBとなっているので、my.iniに設定を追記してInnoDB Plugin1.0.11を有効にできます。

 InnoDB Plugin1.0.11を有効にするには、図8の記述をmy.iniの[mysqld]セクションに追記します。モジュールの拡張子は、Windows系はdllです。Linux系はsoとなります。

図8 InnoDB Plugin1.0.11 を有効にするための設定内容
ignore-builtin-innodb   
plugin-load=innodb=ha_innodb_plugin.dll;innodb_trx=ha_innodb_plugin.dll;innodb_locks=ha_innodb_plugin.dll;innodb_lock_waits=ha_innodb_plugin.dll;innodb_cmp=ha_innodb_plugin.dll;innodb_cmp_reset=ha_innodb_plugin.dll;innodb_cmpmem=ha_innodb_plugin.dll;innodb_cmpmem_reset=ha_innodb_plugin.dll

 my.iniファイルを更新後、MySQLを再起動すれば、InnoDB Plugin1.0.11が有効になります。確認方法は、図9のように@@innodb_versionの値を確認します。InnoDB Pluginが無効の場合には、@@innodb_versionは存在しません。

図9 InnoDB Plugin1.0.11の実装を確認
mysql> select @@innodb_version;
+------------------+
| @@innodb_version |
+------------------+
| 1.0.11           |
+------------------+
1 row in set (0.00 sec)

PHP実行環境性能

 Zend Serverが構築したPHP実行環境は、高速性と効率性を兼ね備えています。原理は、非常に単純です。PHPは、インタプリタなので、常に実行前にプリコンパイルを行い、実行可能な中間コードを生成します。この中間コードは、実行が終了すると破棄されます。Zend Serverは、生成した中間コードをメモリまたはディスク上に保存します。次回の実行時には、翻訳/中間コードの生成を行わずに実行を開始します。そのために大幅な高速化と効率化が実現します。

表7 標準のPHP実行環境とZend Zerverの処理内容の比較
  処理内容 処理内容処理の有無
標準のPHP実行環境 Zend Zerver
最初のリクエスト 該当のPHPコードをファイルシステムから採取
中間コード化
中間コードを実行
中間コードを破棄
2回目以降のリクエスト 該当のPHPコードをファイルシステムから採取  
中間コード化
中間コードを実行
中間コードを破棄

 実際にどの程度の効率化が実現できるか、テスト結果が公開されています。このテストでは、Drupal(オープンソースCMS)を使用して、1秒当たりに処理できたリクエスト数の比較を行っています。

図10 テスト環境
図10 テスト環境
表8 Zend Serverによる高速化と効率化
OS環境 環境での比較 R/S 効率
Linux(Fedora11+Apache) 標準のPHP実行環境 192 100%
Zend ServerによるPHP実行環境 706 368%
Windows(2008R2+IIS) 標準のPHP実行環境 159 100%
Zend ServerによるPHP実行環境 512 322%

 LinuxおよびWindowsのいずれの環境でもZend Serverを使用した場合に1台のZend Serverで、3台分以上のリクエストを処理しており、3倍以上の効果と言えます。逆に3台のサーバが、1台のZend Serverに置き換えられるということです。サーバの集約は、初期投資、管理工数、エネルギーなどを削減しますので、大幅なコスト削減が実現できます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • ゼンド・ジャパン株式会社(ゼンド・ジャパンカブシキガイシャ)

    2001年にZendプロダクト専業の組織として設立。2002年より、独立会社として活動を開始しました。2003年からは、MySQLプロダクトの取扱を開始するなど、Webシステムにフォーカスした製品およびサービスの提供を行っています。LAMPソリューションのサポートサービスでは、SI会社のバックサポー...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5