For the complete documentation index, see llms.txt. This page is also available as Markdown.

パフォーマンスチューニング

パフォーマンス設定は、特に同時ユーザー数が多いプラットフォームにおいて、ページの読み込みを高速化し、リソースの利用効率を向上させるために 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 を構成するには:

  1. CDN ディストリビューション(例: CloudFront、Cloudflare、その他のプロバイダー)をセットアップし、Chamilo サーバーを指すようにします。

  2. 環境または Symfony 設定でアセットのベース URL を構成し、静的アセットが CDN 経由で配信されるようにします。

  3. 静的ファイルに適切なキャッシュヘッダーを設定します(バージョン付きアセットには長い有効期限)。

データベースの最適化

操作
説明

データベース接続プーリングの使用

高同時実行のプラットフォームでは、接続プーリングを構成し、データベース接続確立のオーバーヘッドを削減します。

クエリの最適化

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 モード)などのツールを使い、推測ではなく実際のボトルネックを特定してください。

  • デプロイのたびにキャッシュをウォームアップする ことで、最初のユーザーがキャッシュされていない遅いリクエストに当たるのを避けます。

最終更新

役に立ちましたか?