Mam nadzieję, że ktoś może pomóc. Mamy maszynę z systemem Windows Server 2008 R2 z 16 GB pamięci RAM, która ciągle zużywa całą dostępną pamięć. Nic w Menedżerze zadań lub Monitorze zasobów nie ujawnia żadnego procesu używającego pamięci powyżej 300 MB ... ale użycie pamięci na serwerze wynosi 15,7 GB.
Jedyne działające rzeczy to SQL Server 2008 i IIS7.5 (z ASP.Net).
Uwaga: Zużycie pamięci RAM po ponownym uruchomieniu zaczyna się od niskiego poziomu i rośnie. Po około tygodniu wciąż znajdujemy się w tej sytuacji.
Jak mogę odkryć, co zjada całą naszą pamięć? :(
windows-server-2008
memory
performance-monitoring
memory-usage
task-manager
Django Reinhardt
źródło
źródło
Odpowiedzi:
Czy to serwer 64-bitowy - czy masz włączone blokady stron w lokalnych zasadach pamięci? SQL prawdopodobnie zajmuje resztę pamięci Jeśli spojrzysz na liczniki perfmon, zobaczysz przydział pamięci
Oto artykuł, który szczegółowo to wyjaśnia
Możesz także wyświetlić liczniki w SQL
źródło
Szybki test: zrestartuj SQL Server.
Kolejny szybki test: uruchom ponownie IIS.
Na pewno będziesz wiedzieć, czy jeden z nich jest winowajcą, czy też musisz szukać gdzie indziej.
źródło
Pomocne może być użycie RamMap, aby zobaczyć, dokąd zmierza twoja pamięć.
źródło
Czy rzeczywiście masz jakiś problem związany z pamięcią?
Czy użycie pamięci kiedykolwiek staje się wyższe niż faktycznie zainstalowana pamięć, czy po prostu zapełnia się i pozostaje tam?
Jeśli pamięć się zapełnia, ale nie występują żadne problemy, oznacza to, że pamięć podręczna wykonuje swoją pracę; Pamięć zostanie automatycznie realeased czy i kiedy będziesz rzeczywiście potrzebują.
Jeśli użycie pamięci przekroczy fizyczny limit, a serwer zatrzyma się, oznacza to, że występuje przeciek pamięci i zdecydowanie należy go debugować.
Kilka interesujących artykułów na temat „pamięci podręcznej”:
http://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx
http://blogs.msdn.com/ntdebugging/archive/2007/10/10/the-memory -shell-game.aspx
http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx
źródło
czy sprawdziłeś Perfmon (w szczególności liczniki SQL), jak sugeruje ktoś z twojego innego wątku?
źródło
Pierwszą rzeczą jest, jak powiedziano wcześniej, załatanie go i sprawdzenie, czy to rozwiąże problem.
Po drugie, jeśli to nie zadziała, skorzystaj z Eksploratora procesów, aby lepiej sprawdzić zużycie pamięci. Przejdź do menu Widok, a następnie Wybierz kolumny, Przetwarzaj pamięć i sprawdź opcje Bajty prywatne, Rozmiar wirtualny i Rozmiar zestawu roboczego. Sprawdź, czy to wskazuje na winę.
Drastycznym podejściem byłaby wówczas próba zatrzymania usług. Na przykład usługi IIS mogą być całkowitą świnią pamięci, jeśli masz źle skonfigurowane pule aplikacji i ogrody internetowe (zbyt wiele), więc jest to kandydat.
Powodzenia!
źródło