パフォーマンス最適化
スケールアップする際に FeedbackPulse SaaS を高速化するためのヒントです。
クイックウィン
1. 設定のキャッシュ
php artisan config:cache # .env と設定ファイルをキャッシュ
php artisan route:cache # ルートをキャッシュ
php artisan view:cache # Blade ビューをあらかじめコンパイル
デプロイのたびにこれらを実行してください。
php artisan optimize:clearでクリアできます。
2. キャッシュとセッションに Redis を使用
Redis はファイルやデータベースのキャッシュよりも大幅に高速です:
sudo apt install redis-server php8.4-redis
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
3. データベースキューの使用(最低限)
QUEUE_CONNECTION=database
Supervisor 経由でキューワーカーを実行して、インラインではなくバックグラウンドでジョブを処理します。
4. OPcache の有効化
; /etc/php/8.4/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0 ; 本番環境では無効化
データベースの最適化
インデックスの追加
FeedbackPulse には適切なインデックスが含まれていますが、大きなクエリを実行している場合は以下で確認してください:
-- スロークエリを確認
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
MySQL チューニング
innodb_buffer_pool_size = 1G # 利用可能な RAM の 50〜70%
innodb_log_file_size = 256M
max_connections = 200
innodb_flush_log_at_trx_commit = 2 # 速度のために若干の耐久性を犠牲に
Web サーバーの最適化
Nginx:Gzip の有効化
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_min_length 256;
gzip_vary on;