MySQL belgelerine göre, thread_cache_size
yeni bağlantıların çoğunun yeni oluşturulan iş parçacıkları yerine önbellekteki iş parçacıklarını kullanacak şekilde ayarlamanız gerekir . Bu, iş parçacığı oluşturma ek yükünü azaltır, ancak normalde önemli bir performans artışı sağlamaz:
İş parçacığı istekleri, mümkünse önbellekten alınan iş parçacıkları yeniden kullanılarak gerçekleştirilir ve yalnızca önbellek boşken oluşturulan yeni bir iş parçacığıdır. Çok sayıda yeni bağlantınız varsa, bu değişken performansı artırmak için artırılabilir. Normal olarak, bu iyi bir iş parçacığı uygulamanız varsa , dikkate değer bir performans artışı sağlamaz . Ancak, sunucunuz saniyede yüzlerce bağlantı görüyorsa, normalde thread_cache_size değerini yeterince yüksek ayarlamalısınız ki yeni bağlantıların çoğu önbelleklenmiş iplikler kullanmalıdır . (kaynak)
Bu thread_cache_size
, Threads_created / Connections
(yeni iş parçacıklarının oluşturulmasına yol açan bağlantıların yüzdesi) oldukça düşük olacak şekilde ayarlamanız gerektiği anlamına gelir . MySQL dokümanlarını kelimenin tam anlamıyla ("çoğu") alırsanız, değer <% 50 olmalıdır. RolandoMySQLDBA'nın cevabı <% 1 diyor. Kimin gerçeğe daha yakın olduğunu bilmiyorum.
Sen gerektiğini değil set thread_cache_size
daha yüksek Max_used_connections
. O size sunucudan daha önbelleğinde fazla konuları tutmak gerektiğini söylüyor çünkü RolandoMySQLDBA yanıtında son cümle mantıklı görünmüyor ( "En azından, thread_cache_size Max_used_connections daha fazla olmalıdır") hiç kullanımları. MySQL hiçbir zaman önbellekteki birçok iş parçacığı koyamaz - önleyici olarak önbellekte iş parçacığı koyamaz - yalnızca bir istemci iş parçacığı oluşturup bağlantısını kestikten sonra bunları oraya koyar . Hiçbir zaman aynı anda bağlanan X istemciniz yoksa, önbellekte hiçbir zaman X diziniz olmaz:
Bir istemci bağlantısı kesildiğinde, orada thread_cache_size evrelemesinden daha az sayıda varsa, müşterinin evlatları önbelleğe alınır. (kaynak)
Ayrıca Michael'ın bu cevabına bakınız :
Thread_cache_size değerini max_connections değerinden daha büyük bir değere ayarlamak inanılmaz derecede yararsızdır bir öneri gibi görünüyor ... önbellek muhtemelen max_connections öğesinden daha büyük büyüyemez ve bu boyuta yakın herhangi bir yerdeki bir önbellek, yalnızca iş parçanızda çok fazla miktarda kayıp varsa bile mantıklı olabilir ... iyi niyetli bir uygulamada durum böyle olmaz.
/dba//a/28701