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:clearkomutuyla 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-50 | Tek VPS, dosya önbelleği, senkron kuyruk |
| 50-200 | Tek 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