İlginç bir şekilde, MySQL 5.5'te, artık birden fazla innodb arabellek havuzuna sahip olabilirsiniz.
Önemsediğiniz parametreler
Yaklaşık bir ay içinde, bir müşteriye 112 innodb tampon havuzu uygulayacağım. Nasıl geçtiğini size bildiririm.
GÜNCELLEME 2011-02-27 21:57 EDT
İnnodb_buffer_pool_instances için maksimum değeri 64 olduğunu öğrendim: 144 GB yapılandırmaya karar verdim, bu yüzden innodb_buffer_pool_instances'i 18'e ve innodb_buffer_pool_size'yi 8'e ayarladım. Sunucuyu 450GB ile yüklüyorum
GÜNCELLEME 2011-04-28 13:44 EDT
Birden fazla InnoDB Buffer Pools'u denedim. Çok fazla diş çekme ve çekişme vardı. Tek bir 162GB Tampon Havuzu + ayarını read_io_threads ve write_io_threads değerlerini 64 olarak değiştirdim (maksimum değer). Bu daha iyi çalıştı.
GÜNCELLEME 2012-07-03 17:27 EDT
MySQL hakkında harika bir şey öğrendim. Toplam Monte Edilen Fiziksel İşlemci Sayısına Göre Daha Büyük Tek Bir Monolitik InnoDB Tampon Havuzu tahsis ederseniz , işletim sisteminizi, dolu bir InnoDB Tampon Havuzu nedeniyle takas alan düzenli aralıklarla hafızayı teşvik edeceksiniz. MySQL 5.5'in innodb_buffer_pool_instances olarak bilinen seçeneği , tampon havuzunu ayırmak için kullanılabilir. Dün, bunu geçen yıl cevabımda belirttiğim müşteri için doğru şekilde uyguladım. Müşterinin Tampon Havuzu için hâlâ 162GB'm var. Sunucunun innodb_buffer_pool_instances seçeneğini 2 olarak ayarladım, çünkü her DB Sunucusu çift hexacore. 12'ye ayarlamayı düşünüyordum ama sonra bir meslektaşım Jeremy Cole'dan MySQL ve Swappiness hakkında bir blog gösterdi. Okuduktan sonra müşterim için hemen uygulamaya koyuyorum. Bu komutu koştum
numactl --hardware
Her bir fiziksel çekirdeğe 192 GB sunucu RAM'in 96 GB olarak eşlendiğini gördüm. Bu nedenle, innodb_buffer_pool_instances değerini 2 olarak ayarlıyorum. İşler şu anda iyi görünüyor. Bunun sonraki 2 ay boyunca hafızayı değiştirmeyi nasıl etkilediğini görmek için cevabımı güncelleyeceğim.