プラグイン数とパフォーマンスについて
PowerCMS では標準プラグインとオプションプラグインから構成され、多数のプラグインがセットになっていますが、インストールされているプラグインが増えるに従って初期化の際のオーバヘッドが増加し、パフォーマンスの低下を招く恐れがあります。これを防ぐために、以下のような方針でプラグインの設置を行ってください。
- 標準プラグイン全てと、使用するオプションプラグインのみをサーバに設置し、使用しないオプションプラグインは設置しない(無効化していても、設置しているだけでプラグインおよびそのプラグインが持つライブラリの読み込み処理が発生します)
- 使用しない標準プラグインがわかっている場合はプラグイン設定画面もしくは環境変数 PluginSwitch によって無効化し、有効化すれば使えるようにしておく — 例えば、30 個のプラグインをインストールして有効化すると、一つのプラグインあたり 0.05-0.2 秒の初期化処理が発生するとして、単純計算で 1.5-6 秒程度のオーバーヘッドを招く可能性があります。
プラグインの有効/無効について
プラグインの有効・無効について、注意が必要なものをお知らせいたします。プラグインの中には名前とディレクトリ名に差違があるものがございますので、「プラグイン名(ディレクトリ名)」のように表記いたします。
無効化に注意が必要なプラグイン
以下のプラグインは、プラグインとアドオンが連携して動作するためセットで削除する必要があります。
- Contact Form Config (ContactFormConfig) << ContactForm.pack を合わせて削除する必要があります
- Custom Group Config (CustomGroupConfig) << ContactGroup.pack を合わせて削除する必要があります
- Custom Object (CustomObjectConfig) << ContactObject.pack を合わせて削除する必要があります
アドオンは $MT_DIR/addons
以下に設置されているもので、無効化の操作ができないため、ディレクトリから除外する必要があります。
- ContactForm.pack を削除した場合、フォーム機能が利用できなくなります。
- ContactGroup.pack を削除した場合、グループ系機能が利用できなくなります。
- ContactObject.pack を削除した場合、 カスタムオブジェクト機能及びカスタムオブジェクト (サブクラス) 機能が利用できなくなります。
高速化/軽量化に関する機能の利用
まず第一に PowerCMS が標準で搭載している以下のような高速化、軽量化に関する機能を利用することを検討してください。
データベースのチューニング
MySQL等のデータベースをチューニングすることで、全体的なパフォーマンスの改善が見込めます。具体的なチューニング方法については各データベースのマニュアルを参照してください。
なお、PowerCMSでは、MySQLデータベース最適化のためのスクリプトが同梱されています。 $MT_DIR/tools
ディレクトリのスクリプト optimize-mysql を実行することで最適化を実行することができます。
例) 毎月1回の crontab 設定
0 0 1 * * cd $MT_DIR && /usr/bin/perl tools/optimize-mysql