konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


Top

Zend Server ::: Tips

パフォーマンスを向上させたい

(Ver 5.6)

Zend Studio のプロファイラ機能やZend Server のコードトレーシング機能を利用して長時間かかる処理を調査可能です。
いくつか考えられる手段を列挙します。

データベース関連に問題がある場合

  • A.データベースへの接続や切断に時間がかかる場合、持続的接続を行う関数を利用して、一旦作成した接続を再利用する。
    • 例) mysql_connect の代わりに mysql_pconnect
  • B.プリペアードステートメントを利用して、実行計画の再計算を省く。
    ただし、実行計画自体に問題があれば、実行計画を見直さない限り、初回実行は相変わらず遅いままです。
  • C.SQL実行に問題がある場合、実行計画を調査し、SQL文そのものやインデックスを地道に一つ一つ見直す。

ファイルシステムの問題

  • PHPスクリプトを多数使用する場合や、ファイルの入出力を頻繁に行う場合、include_path や realpath の設定を見直します。
    それぞれ下記をご覧ください。ファイルのサイズではなく、個数が影響します。
  • その他、include または require を、読み込み対象のスクリプトの中身を実際に使う直前に行う方法もあります。

ネットワーク関連の問題

  • 回線を有効活用するために、通信量を減らす。
    • 静的な画面出力をブラウザ側でキャッシュする。
    • 画面出力をサーバー側で圧縮する。
      • Zend Server Ver 5.6 の EE 版で利用できるページキャッシュ機能には、キャッシュされたコンテンツを圧縮するための設定があります
      • Apache の deflate 機能を活用する。
  • サイズの大きいファイルを大量に扱う(動画や画像など)
    • CDN を利用して、ユーザーの近くの CDN 拠点からファイルを配信。
    • Zend Server Ver 5.6 の EE 版 Linux用に内蔵している、Zend Download Server を利用して、Apacheをファイル送信処理から解放する。

その他

時間帯の設定の影響もありえます。
もし php.ini 内の date.timezone を設定していない場合、明示的に設定すると、時間帯を決定するための内部処理を省略できます。
例えば Asia/Tokyo と設定します。Zend Server Ver 5.6 日本語版ではあらかじめ設定済です。

上記の各種の方法や、その他のパフォーマンス・チューニングについて、詳しくは弊社にお問い合わせください。


最終更新のRSS