SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

 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に置き換えられるということです。サーバの集約は、初期投資、管理工数、エネルギーなどを削減しますので、大幅なコスト削減が実現できます。

次のページ
Zend Server EE 日本語版のパフォーマンスチューニングに役立つ監視機能

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5735 2011/02/15 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング