SQL Server maksimum ve minimum RAM düzeyi

Haziran 2014 | Hakan Köse, İnternet Girişimcisi
SQL Server ayarlarında genellikle gözden kaçan ufak bir düzenlemeyi buraya not etmek istiyorum. Aslında bu bilgi çok çok uzun zamanın öncesinin konusu ancak yine de bundan sonra herkes faydalanabilsin ve arandığında burada bulunsun.

Normalde, eğer sunucunuzun donanım seviyesi ile SQL Server versiyonu arasında mantıklı bir bağ yok ise donanımınızı arttırmanız gerekir. Donanımınız yeterli sayılabilecek durumda ise ayarları düzeltmekte fayda var.

SQL Server çok fazla RAM tüketiyor
SQL Server bu RAM tüketimini daha çok "Buffer Pool" gerçekleştiriyor ve bunun bir üst limiti "varsayılan ayarlarda" yok. Yani, işletim sisteminin daha stabil çalışabilmesi için gereken hafıza dahil olmak üzere zamanla SQL Server hafıza sömürmeye başlıyor. Sunucuyu restart edince durum düzeliyor ancak zamanla yeniden aynı durum oluşuyor.

Bu durumda SQL Server Management Studio ile sunucuya bağlanıp şu ayarı yapmanız gerekiyor:

Server Sağ tık -> Properties (Ayarlar) -> Memory

3327


Buradaki ayarlardan "Server Memory Options" kısmında "Maximum server memory (in MB) " ayarlaması varsayılan olarak çok yüksek bir rakam olarak belirlenmiş (sınırsız hafızaya karşılık gelecek biçimde) . Bunu kendi fiziksel donanımınıza göre uygun bir değere limitlemeniz gerekir.

Maksimum RAM limitini nasıl belirlerim?
Çok genel olsa da internette benim de aklıma yatan şöyle bir öneri tablosu bulmuştum, hemen onu paylaşayım:

Fiziksel RAM - Max. RAM Ayarı
2GB - 1500
4GB - 3200
6GB - 4800
8GB - 6400
12GB - 10000
16GB - 13500
24GB - 21500
32GB - 29000
48GB - 44000
64GB - 60000
72GB - 68000
96GB - 92000
128GB - 124000

Bu ayarlamayı yaptığınızda sunucu çok daha stabil çalışacaktır.

Aynı ayarlamayı ayrıca T-SQL komutu ile de şu şekilde yapabilirsiniz:

-- Turn on advanced options
EXEC sp_configure 'Show Advanced Options',1;
GO
RECONFIGURE;
GO
-- Set max server memory = 3072MB
EXEC sp_configure 'max server memory (MB)',3072;
GO
RECONFIGURE;
GO
-- See what the current values are
EXEC sp_configure;


Umarım faydalı olur bu bilgiler, çünkü bazı bilgiler basittir ama hayat kurtarır :)