Sunucu RAM miktarınıza, gerçek veri boyutunuza ve sunucu rolünüze göre ideal innodb_buffer_pool_size değerini ve güvenli my.cnf ayarlarını hesaplayın.
MySQL ve MariaDB için en kritik performans ayarı olan InnoDB tampon bellek (Buffer Pool) boyutunu hesaplayın.
RAM'in %50'si web sunucusuna ve PHP-FPM işçilerine ayrılır.
Mevcut boyutunuzu öğrenmek için aşağıdaki SQL sorgusunu çalıştırabilirsiniz.
Her bağlantı için yaklaşık 3.5 MB tampon bellek ayrılır.
Gelecek aylardaki veri büyümesi için ilave tampon.
(4096 MB · RAM'in %50'i)
Multithread kilitlenmeleri (mutex contention) önler
innodb_redo_log_capacity (Pool'ün %25'i)
OS + Web Rezervi: 3686 MB
# /etc/mysql/conf.d/99-innodb-optimization.cnf [mysqld] # InnoDB Bellek Optimizasyonu innodb_buffer_pool_size = 4G innodb_buffer_pool_instances = 4 innodb_buffer_pool_chunk_size = 128M innodb_redo_log_capacity = 1024M # Baglanti ve Is Parcacigi max_connections = 100 thread_cache_size = 20 innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2
SET GLOBAL innodb_buffer_pool_size = 4096 * 1024 * 1024;SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS total_size_gb FROM information_schema.tables WHERE engine = 'InnoDB';InnoDB depolama motoru, tablolardaki verileri ve indeksleri diskten okumak yerine RAM üzerinde tutulan Buffer Pool (Tampon Bellek Havuzu) içinde önbelleğe alır. Bir sorgu geldiğinde veri tampon bellekte varsa bellek hızında (mikrosaniyeler içinde) yanıt döner; yoksa yavaş disk I/O işlemi yapılır.
Pek çok Linux dağıtımında MySQL varsayılan olarak innodb_buffer_pool_size = 128M ile kurulur. Sunucunuzda 16 GB veya 32 GB RAM olsa dahi bu ayar güncellenmezse MySQL yalnızca 128 MB bellek kullanır ve veritabanı hızla şişerek disk I/O darboğazına (Disk Throttling) girer.
Eğer Nginx/Apache ve PHP-FPM web sunucunuz MySQL ile aynı sunucuda barınıyorsa RAM'in maksimum %50'siveritabanına ayrılmalıdır. Aksi takdirde yoğun bir web trafiğinde PHP-FPM işçileri bellek bulamayarak Linux OOM Killer tarafından MySQL servisinin aniden sonlandırılmasına (çökmesine) yol açar.