パフォーマンスチューニング
パフォーマンス設定は、特に同時ユーザー数が多いプラットフォームにおいて、ページの読み込みを高速化し、リソースの利用効率を向上させるために Chamilo を最適化するのに役立ちます。
追加の参考資料: Chamilo のインストールには、拡張された最適化ガイドが含まれています。ブラウザで
/documentation/optimization.htmlを開いてください(例:https://your-chamilo-site/documentation/optimization.html)。ご利用のバージョンに固有のサーバーレベルの推奨事項が記載されています。
Symfony Cache
Chamilo 3.0 は Symfony 上に構築されており、ルーティング、依存性注入、テンプレートにコンパイル済みキャッシュを使用します。このキャッシュの管理はパフォーマンスにとって不可欠です。
キャッシュのクリア
設定変更、デプロイ、またはアップグレードの後は、Symfony キャッシュをクリアしてください。
# Clear cache for the current environment
php bin/console cache:clear
# For production environments specifically
php bin/console cache:clear --env=prod本番環境では、常に .env.local ファイルで APP_ENV=prod が設定されていることを確認してください。開発環境(APP_ENV=dev)には大規模なデバッグオーバーヘッドが含まれており、本番では決して使用すべきではありません。
キャッシュのウォームアップ
キャッシュをクリアした後、テンプレートと設定を事前コンパイルするためにウォームアップします。
php bin/console cache:warmup --env=prodキャッシュ戦略
OPcache
PHP 組み込みのオペコードキャッシュです。php.ini で有効にし、十分なメモリ(opcache.memory_consumption=256)を確保してください。これが単一で最も効果の大きいパフォーマンス最適化です。
APCu
Symfony がメタデータの保存に使用するインメモリのキー・バリューキャッシュです。APCu PHP 拡張をインストールし、Symfony のキャッシュ設定で構成してください。
Redis / Memcached
高トラフィックのプラットフォームでは、外部キャッシュバックエンドを構成します。config/packages/cache.yaml でキャッシュアダプターを設定してください。
推奨 OPcache 設定
validate_timestamps を 0 に設定した場合、新しいコードをデプロイした後は OPcache をクリアする必要があります(PHP-FPM を再起動するか、opcache_reset() を呼び出します)。
遅延読み込み
画像の遅延読み込み
画像に loading="lazy" 属性を有効にし、画面外の画像はスクロールして表示されるまで読み込まれないようにします。初期ページ読み込み時間を短縮します。
JavaScript の遅延読み込み
重要でない JavaScript ファイルを非同期で読み込み、ページ描画のブロックを避けます。
CDN(コンテンツ配信ネットワーク)
複数の地理的地域のユーザーにサービスを提供するプラットフォームでは、CDN により静的アセット(CSS、JavaScript、画像)の読み込み時間を大幅に改善できます。
CDN を構成するには:
CDN ディストリビューション(例: CloudFront、Cloudflare、その他のプロバイダー)をセットアップし、Chamilo サーバーを指すようにします。
環境または Symfony 設定でアセットのベース URL を構成し、静的アセットが CDN 経由で配信されるようにします。
静的ファイルに適切なキャッシュヘッダーを設定します(バージョン付きアセットには長い有効期限)。
データベースの最適化
データベース接続プーリングの使用
高同時実行のプラットフォームでは、接続プーリングを構成し、データベース接続確立のオーバーヘッドを削減します。
クエリの最適化
Chamilo には一般的なクエリ用のデータベースインデックスが含まれています。MySQL/MariaDB では定期的に ANALYZE TABLE を実行し、クエリプランナーの統計を最新に保ちます。
データベースサーバーの分離
大規模インストールでは、Web サーバーとリソースを共有せず、専用サーバーでデータベースを稼働させます。
Web サーバーの構成
gzip/brotli 圧縮の有効化
HTML、CSS、JavaScript のレスポンスを圧縮します。ほとんどの Web サーバーがネイティブにサポートしています。
静的ファイルのキャッシュ
静的アセットに長い Cache-Control および Expires ヘッダーを設定します。
PHP-FPM のチューニング
利用可能な RAM と想定同時実行数に基づき、pm.max_children、pm.start_servers、pm.max_requests を調整します。
HTTP/2
Web サーバーで HTTP/2 を有効にし、多重化接続とヘッダー圧縮を利用します。
ヒント
OPcache が単一で最大の効果です -- 他の最適化に進む前に、有効化と適切なサイズ設定を確実に行ってください。
本番で
APP_ENV=devを絶対に使わない -- デバッグツールバーとプロファイラーは、すべてのリクエストに大きなオーバーヘッドを加えます。チューニングの前に監視する -- New Relic、Blackfire、または Symfony 組み込みプロファイラー(dev モード)などのツールを使い、推測ではなく実際のボトルネックを特定してください。
デプロイのたびにキャッシュをウォームアップする ことで、最初のユーザーがキャッシュされていない遅いリクエストに当たるのを避けます。
最終更新
役に立ちましたか?