Ana içeriğe geç

Performans Optimizasyonu

Büyüdükçe FeedbackPulse SaaS'ı daha hızlı çalıştırmak için ipuçları.


Hızlı Kazanımlar

1. Yapılandırmayı Önbelleğe Alın

php artisan config:cache    # .env ve yapılandırma dosyalarını önbelleğe al
php artisan route:cache # Rotaları önbelleğe al
php artisan view:cache # Blade görünümlerini önceden derle

Her dağıtımdan sonra çalıştırın. php artisan optimize:clear komutuyla temizleyin.

2. Önbellek ve Oturumlar için Redis Kullanın

Redis, dosya veya veritabanı önbelleğinden önemli ölçüde daha hızlıdır:

sudo apt install redis-server php8.4-redis
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

3. Veritabanı Kuyruğu Kullanın (Minimum)

QUEUE_CONNECTION=database

İşleri satır içi yerine arka planda işlemek için Supervisor aracılığıyla bir kuyruk işçisi çalıştırın.

4. OPcache'i Etkinleştirin

; /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 ; Canlı ortamda devre dışı bırakın

Veritabanı Optimizasyonu

Dizin Ekleyin

FeedbackPulse uygun dizinlerle birlikte gelir; ancak büyük sorgular çalıştırıyorsanız şunu doğrulayın:

-- Yavaş sorguları kontrol edin
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

MySQL Ayarları

innodb_buffer_pool_size = 1G       # Mevcut RAM'in %50-70'i
innodb_log_file_size = 256M
max_connections = 200
innodb_flush_log_at_trx_commit = 2 # Hız için hafif dayanıklılık dengesi

Web Sunucusu Optimizasyonu

Nginx: Gzip'i Etkinleştirin

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_min_length 256;
gzip_vary on;

Statik Dosya Önbellekleme

location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}

PHP-FPM Ayarları

pm = dynamic
pm.max_children = 20 # RAM'e göre ayarlayın
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 500 # Bellek sızıntılarını önleyin

Ölçeklendirme Önerileri

Kiracı SayısıÖnerilen Kurulum
1-50Tek VPS, dosya önbelleği, senkron kuyruk
50-200Tek VPS, Redis önbelleği, Supervisor ile veritabanı kuyruğu
200-1000Özel sunucu, Redis önbelleği+kuyruğu, MySQL ayarları
1000+Yük dengeleyici, ayrı veritabanı sunucusu, Redis kümesi, birden fazla kuyruk işçisi

İzleme

# PHP-FPM durumunu kontrol edin
sudo systemctl status php8.4-fpm

# MySQL işlem listesini kontrol edin
mysqladmin processlist

# Disk alanını kontrol edin
df -h

# Bellek kullanımını kontrol edin
free -m

# Hatalar için Laravel günlüklerini kontrol edin
tail -f storage/logs/laravel.log

Sonraki Adımlar