Jak dobrać max server memory?

by Marcin Goł on July 14th, 2009

Czy kiedykolwiek mieliście problemy z poprawnym ustawieniem max server memory? Jaka powinna być wartość parametru na maszynie z 32GB RAM z 4 procesorami i czy ta sama wartość może być na pudle z 32GB RAM i 8 procesorami? Okazuje się że jest dość prosty algorytm, który pozwala określić te wartości:

Poniższe wartości są dla “najgorszego możliwego przypadku” – czyli można ustawić więcej … algorytm wygląda następująco:

[max server memory] = [RAM] – [system operacyjny] – [wątki robocze SQL Server] – [linked servery itp] – [inne aplikacje]

- system operacyjny powinien dostać ok 2GB

- wątki robocze – każdy wątek w zależności od typu maszyny zabiera różną ilość pamięci (x32 – 0.5MB, x64 – 2MB, IA64 – 4MB); liczba wątków jest określana na podstawie tabeli (chyba że administrator zmodyfikował to przy pomocy sp_configure ‘max worker threads’):

CPU / 32bit / 64bit
1-4 / 256 / 512
4-8 / 288 / 576
8-16 / 352 / 704
16-32 / 480 / 960

- inne części MemToLeave – linked servery, xp, com – ok 1GB

- inne aplikacje – w zależności od potrzeb – zwykle nie potrzebują więcej niż 3GB (no chyba że jest to inna instancja SQL Server)

Przykład:

Maszyna A:

CPU: 8, RAM 32GB, x64

max server server memory = 32 – 2 – ~1,1 – 1 => ~28GB

Maszyna A:

CPU: 8, RAM 32GB, x32

max server server memory = 32 – 2 – 0,2 – 1 => ~29GB

Jak widać całość okazuje się dość prosta i zdecydowanie warto zastosować ten prosty schemat do naszych serwerów ;-)

From → SQL Server

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS