8GB RAM IIS7 ve MySQL çalıştıran bir Windows 2008 sunucum var. Sunucudaki bellek, işlemci ve disk kullanımını izliyorum ve MySQL'in yalnızca 250 MB kullandığını öğrendim RAM, diskleri çok meşgul ediyor, etrafta bolca serbest koç olmasına rağmen.
SQL Server'da kolayca kullanmak istediğim bellek miktarını ayarlayabilirim, MySQL'de aynı ayarı arıyorum.
MySQL'i nasıl daha fazla bellek kullanacak ve cpu ile disk kullanımını azaltacak şekilde nasıl yapılandırabilirim?
table_cache
Değiştirilecek en kullanışlı yapılandırma direktifidir. MySQL bir tabloya her eriştiğinde, tabloyu önbelleğe yükler. Çok sayıda tablonuz varsa, onları önbelleğe almak daha hızlıdır.
Şunları çalıştırarak sunucu değişkenlerinize göz atın:
show status;
ve open_tables
değişkenine bir göz atın. Bu, table_cache
Değerinizle aynıysa ve opened_tables
Artmaya devam ederse, yapılandırma dosyanızdaki table_cache
Değerini artırmanız gerekir. Yoğun zamanlarda bu değişkenleri deneyerek bir denge bulacaksınız. En yoğun zamanlarda, sunucu uzun bir süre kaldıktan sonra bile düşük miktarda opened_tables
Olacak şekilde yapılandırmak istersiniz.
key_buffer_size
, Denemesi için de iyi bir değişkendir. Bu değişken dizin arabellek boyutunu etkiler ve bu değişkeni daha büyük yapmak MySQL'in dizin işleme hızını artırır. show variables;
Komutuyla değişkenlere tekrar bakabilir ve key_read_requests
İle key_reads
İle karşılaştırabilirsiniz. İdeal olarak, bu iki değişken arasındaki oranın olabildiğince düşük olmasını istersiniz ve bunu key_buffer_size
Boyutunu artırarak yapabilirsiniz. Bu değişkeni daha yükseğe ayarlarsanız, asıl endişeniz olan doğrudan diske ve diskten daha az yazma ve okuma elde edersiniz.
my.cnf
dosyasını açın ve MySQL'i yeniden başlatın, ancak MySQL çalışırken çoğunu da değiştirebilirsiniz ('SET GLOBAL VARIABLE = değeri ').
Muhtemelen key_buffer_size
, sort_buffer
, read_buffer
ve table_cache
yeni başlayanlar için ve muhtemelen innodb_buffer_pool_size
, herhangi bir InnoDB tablonuz varsa. Bu değerlerden bazıları, özellikle donanımınız göz önüne alındığında, uzun bir yolu (iki büyüklük sırasını bile) artırabilirsiniz. MySQL'in varsayılanları son derece muhafazakardır ve yaklaşık on yıl önceki ortak kullanımlı masaüstü bilgisayarlara yönelik gibi görünüyordu. Oh, ve 32 bit sürümün 2GB'dan fazla RAM kullanırken sorun yaşayacağı konusunda uyarılmalıdır.
Daha fazla bilgi ve rehberlik için MySQL El Kitabı konusuna bakın.