Zakładając, że masz dedykowany serwer do obsługi funkcji bazy danych - ile pamięci należy zarezerwować dla systemu operacyjnego?
Zdaję sobie sprawę, że prawdopodobnie będzie się to nieco różnić w zależności od konkretnego systemu operacyjnego, konkretnego oprogramowania bazy danych i tak dalej. Ponieważ jednak pamięć jest tak ważna dla wydajności bazy danych, chcę, aby baza danych miała maksymalny rozsądny poziom pamięci, bez głodzenia systemu operacyjnego hosta.
Więc
- co jest dobrą ogólną zasadą na początek?
- na jakie liczniki lub wskaźniki wydajności powinniśmy spojrzeć, aby stwierdzić, czy posunęliśmy się za daleko i czy baza danych w jakiś sposób głoduje system operacyjny?
sql-server
windows
memory
Jeff Atwood
źródło
źródło
Odpowiedzi:
Zakładając Windows i SQL Server ...
Istnieją dwie szkoły myślenia.
Osobiście jestem w pierwszej grupie. Windows zwykle potrzebuje tylko 2-4 koncertów, czasem nawet do 6.
źródło
Zakładając, że Linux, jeśli wyłączysz swap, a jądro nadal zabija proces DB, ponieważ brakuje pamięci, jest to dobry wskaźnik głodu pamięci dla systemu operacyjnego. Cofaj się, aż to się skończy. Kilkaset megapikseli to zwykle dużo.
źródło
Tutaj możesz wykorzystać doświadczenie Amazon z działaniem tysięcy serwerów baz danych klientów: w usłudze Amazon Relational Database Service ustawiają pulę buforów innodb MySQL na 3/4 pamięci systemu, niezależnie od tego, ile to jest pamięci. Dodaj do kilku megabajtów na połączenie dla różnych buforów zapytań i prawdopodobnie pozostawiają 10-20% pamięci w systemie operacyjnym.
źródło
Powinieneś przeczytać pamięć Brenta Ozara . Ma kilka dość standardowych odpowiedzi na pytanie, dlaczego powinieneś szukać pamięci i dlaczego więcej pamięci oznacza lepszą wydajność. Ogólnie 4 GB lub 10% zarezerwowane dla systemu operacyjnego.
źródło