2013-02-25 17 views
6

Wiem, że dzięki postgresql.conf mogę ograniczyć wykorzystanie pamięci określonych części PostgreSQL, takich jak pamięć dzielona lub pamięć robocza, ale czy istnieje sposób na ograniczenie całkowitego wykorzystania pamięci serwera PostgreSQL? Nie udało mi się znaleźć właściwości konfiguracyjnej, która to powoduje ...Ograniczenie całkowitego wykorzystania pamięci PostgreSQL

BTW, będę musiał uruchomić ją na komputerze z systemem Windows Server 2008.

Odpowiedz

6

Co masz na myśli "totalna" pamięć? Jest to suma środków przydzielonych do różnych pul.

Krótko mówiąc ... nie ustawiaj zbyt dużej puli/buforów i to jest całkowity limit pamięci.

+1

Rozumiem ... Miałem nadzieję, że jest jakiś limit, który mógłbym ustawić i mieć pewność, że PostgreSQL nigdy go nie przekaże, ale myślę, że to będzie konieczne. Czy są jakieś pułapki, na które powinienem zwrócić uwagę przy ustalaniu limitów pamięci? –

+1

work_mem jest maks. Pamięcią używaną przez indywidualny sort lub inną intensywną operację pamięci (hash ops itp.). Każde zapytanie może mieć o, 1 lub więcej z tych operacji. Zakładając, że twoja średnia kwerenda ma 2 lub mniej rodzajów itp., Możesz uzyskać pomysł maksymalnej pamięci, której może używać wysoko wydajne urządzenie: max_connections * work_mem * 2, give lub take. Poszczególne backendy PostgreSQL używają tylko około 6MB, więc jeśli nie masz bardzo wysokich max_connections poszczególnych backendów, bez sortów itp., Nie sumuj się za dużo. –

+0

Pamiętaj, że mniej znaczy czasem więcej, więc nie zwiększaj na ślepo wszystkich tych liczb, ponieważ wiele z nich to kary za wydajność, jeśli są ustawione na zbyt wysokim poziomie. –

Powiązane problemy