文字コード設定の日本語化
Zend Server CEは、英語環境を前提としています。マルチバイト文字を使用するために肝となるmbstringは、デフォルトで組込済みです。しかし、設定は、空白となっています。必要に応じて設定をしてください。
UTF-8で使用する場合には、図7のように言語、内部文字コードなどを設定してください。
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となります。
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は存在しません。
mysql> select @@innodb_version; +------------------+ | @@innodb_version | +------------------+ | 1.0.11 | +------------------+ 1 row in set (0.00 sec)
PHP実行環境性能
Zend Serverが構築したPHP実行環境は、高速性と効率性を兼ね備えています。原理は、非常に単純です。PHPは、インタプリタなので、常に実行前にプリコンパイルを行い、実行可能な中間コードを生成します。この中間コードは、実行が終了すると破棄されます。Zend Serverは、生成した中間コードをメモリまたはディスク上に保存します。次回の実行時には、翻訳/中間コードの生成を行わずに実行を開始します。そのために大幅な高速化と効率化が実現します。
処理内容 | 処理内容処理の有無 | ||
標準のPHP実行環境 | Zend Zerver | ||
最初のリクエスト | 該当のPHPコードをファイルシステムから採取 | ○ | ○ |
中間コード化 | ○ | ○ | |
中間コードを実行 | ○ | ○ | |
中間コードを破棄 | ○ | ○ | |
2回目以降のリクエスト | 該当のPHPコードをファイルシステムから採取 | ○ | |
中間コード化 | ○ | ||
中間コードを実行 | ○ | ○ | |
中間コードを破棄 | ○ |
実際にどの程度の効率化が実現できるか、テスト結果が公開されています。このテストでは、Drupal(オープンソースCMS)を使用して、1秒当たりに処理できたリクエスト数の比較を行っています。
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に置き換えられるということです。サーバの集約は、初期投資、管理工数、エネルギーなどを削減しますので、大幅なコスト削減が実現できます。