Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

MySQL my.cnf Temel Optimizasyonu: Bağlantı Havuzu, Tampon Boyutları ve Performans İyileştirmeleri

devnix

Üye
Katılım
14 Mart 2026
Mesajlar
20
Merhaba arkadaşlar, bugün sizlere özellikle yeni kurduğunuz veya performans sıkıntısı çeken MySQL/MariaDB sunucularınızda yapabileceğiniz temel my.cnf optimizasyonlarından bahsedeceğim. Bu ayarlar, sunucunuzun kaynaklarını daha verimli kullanmasını, bağlantı sorunlarını azaltmasını ve genel sorgu performansını artırmasını sağlayacak. Benim de kendi sunucularımda genelde ilk baktığım noktalardır.

📊 Optimizasyona Başlamadan Önce

Her şeyden önce, mevcut durumu görmek çok önemli. Sunucunuzun ne kadar RAM'i olduğunu, şu anki MySQL bağlantı ve tampon istatistiklerini bilmelisiniz. Aşağıdaki komutlar size fikir verecektir.

SQL:
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW STATUS LIKE 'Max_used_connections';
SHOW STATUS LIKE 'Threads_connected';

Ayrıca, değişiklik yapmadan önce mevcut /etc/mysql/my.cnf veya /etc/my.cnf dosyanızın yedeğini almayı unutmayın!

🔧 Bağlantı ve Thread Ayarları

Sunucunuz "Too many connections" hatası veriyor veya yoğun dönemlerde yavaşlıyorsa, bağlantı havuzu ayarlarına bakmak gerekir. Varsayılan değerler genelde yetersiz kalır.

INI:
# Maksimum eşzamanlı bağlantı sayısı. Sunucu RAM'inize göre ayarlayın.
# 4GB RAM için 150-200, 8GB için 300-400 gibi düşünebilirsiniz.
max_connections = 200

# Bağlantı açma/kapama maliyetini azaltır. Aktif tutulacak thread sayısı.
thread_cache_size = 50

# Bir bağlantının boşta kalabileceği maksimum süre (saniye).
# Uzun süreli işlemler yapıyorsanız artırın, genel kullanım için 28800 (8 saat) uygundur.
wait_timeout = 28800
interactive_timeout = 28800

💾 InnoDB Tampon Havuzu (Buffer Pool) Optimizasyonu

Bu, MySQL performansı için EN KRİTİK ayardır. InnoDB motoru, tablo ve indeks verilerini burada önbelleğe alır. Mümkün olduğunca büyük tutmak performansı muazzam artırır. Genel kural: Kullanılabilir RAM'in %70-80'i kadar ayırabilirsiniz, ancak işletim sistemine ve diğer uygulamalara da RAM kalmalı.

INI:
# Kullanılabilir RAM'inize göre bu değeri değiştirin.
# Örnek: 8GB RAM'li sunucuda 4-5GB ayırmak mantıklıdır.
innodb_buffer_pool_size = 4G

# Buffer Pool'u tek parça halinde değil, daha küçük parçalar halinde ayırmak,
# özellikle büyük RAM'lerde (64GB+) performans ve yönetim avantajı sağlar.
innodb_buffer_pool_instances = 4

⚠️ Dikkat Edilmesi Gerekenler

Bu ayarları yaptıktan sonra mutlaka MySQL servisini yeniden başlatmanız gerekir. Ancak, innodb_buffer_pool_size gibi büyük bir değer atadıysanız, sunucu açılırken tüm bu alanı tahsis etmeye çalışacak ve başlangıç süresi uzayacaktır. Bu normaldir, panik yapmayın.

Ayrıca, her sunucunun iş yükü farklıdır. Bu ayarlar genel geçer başlangıç noktalarıdır. Monitör etmeye devam edin. Aşağıdaki sorgu ile InnoDB Buffer Pool kullanım verimliliğinizi kontrol edebilirsiniz.

SQL:
SHOW STATUS LIKE 'Innodb_buffer_pool_read%';

Eğer `Innodb_buffer_pool_read_requests` değeri yanındaki `Innodb_buffer_pool_reads` değerine göre çok çok büyükse (örn: %99'dan fazla), buffer pool'unuz verimli çalışıyor demektir.

✨ Ek Performans İpuçları

Aşağıdaki ayarlar da genel performansa katkı sağlar. Özellikle log yazma işlemlerini optimize ederler.

INI:
# Log dosyası boyutu. Varsayılan 48M çok küçük kalır, özellikle yoğun yazma işlemi olan sunucularda artırın.
# Büyük boyut, disk yazma sıklığını azaltır. 1G-2G arası iyi bir başlangıçtır.
innodb_log_file_size = 1G
innodb_log_buffer_size = 64M

# Veri dosyalarını O_DIRECT ile açarak, dosya sistemi önbelleğini (cache) bypass eder.
# Bu, özellikle yüksek RAM'li sistemlerde çift önbellekleme sorununu önler ve performansı artırır.
innodb_flush_method = O_DIRECT

# Tablo başına ayrı dosya kullanımı, yönetimi ve yedeklemeyi kolaylaştırır.
innodb_file_per_table = 1

Umarım bu rehber, sunucularınızdaki MySQL performansını gözle görülür şekilde iyileştirmenize yardımcı olur. Unutmayın, sihirli bir tek ayar yok, sisteminizi izleyerek ve iş yükünüze göre ince ayar yapmak en iyisidir.

Siz bu optimizasyonları kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir yaklaşımınız veya eklemek istediğiniz bir püf noktası var mı? Ya da takıldığınız bir yer olursa, aşağıya yazmaktan çekinmeyin. Hep birlikte öğrenelim.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri