누군가 도울 수 있기를 바랍니다. 우리는 16GB RAM을 가진 Windows Server 2008 R2 시스템을 가지고 있으며 사용 가능한 모든 메모리를 계속 사용하고 있습니다. 의 어떠한 작업 관리자 또는 리소스 모니터 3백메가바이트 위의 메모리를 사용하는 과정을 보여준다하지 …하지만 서버의 메모리 사용량은 15.7GB입니다.
SQL Server 2008 및 IIS7.5 (ASP.Net 포함) 만 실행됩니다 .
참고 : 재부팅 후 RAM 사용량이 낮게 시작되어 작동합니다. 일주일 정도 지나면 우리는이 상황에서 스스로를 계속 찾습니다.
우리의 모든 기억을 먹고있는 것을 어떻게 알 수 있습니까? 🙁
답변
이 서버는 64 비트 서버입니까? 메모리 로컬 정책의 잠금 페이지를 사용합니까? SQL이 나머지 메모리를 소비 할 가능성이 있음 perfmon 카운터를 보면 메모리 할당이 표시됩니다.
SQL에서 카운터를 볼 수도 있습니다
SELECT
object_name
,Counter_name
,cntr_value
,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
sys.dm_os_performance_counters
WHERE
object_Name LIKE '%Buffer Manager%'
AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
'Database pages' )
UNION SELECT
object_name
,Counter_name
,cntr_value
,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
sys.dm_os_performance_counters
WHERE
counter_name IN ( 'Target Server Memory (KB)',
'Total Server Memory (KB)' )
답변
빠른 테스트 : SQL Server를 다시 시작하십시오.
또 다른 빠른 테스트 : IIS를 다시 시작하십시오.
그들 중 하나가 범인인지 또는 다른 곳을 봐야하는지 확실히 알 수 있습니다.
답변
답변
실제로 메모리 관련 문제가 있습니까?
메모리 사용량 이 실제 설치된 메모리보다 높아지 거나 채워져 그대로 유지됩니까?
메모리가 가득 찼지만 아무런 문제가 없다면 캐시는 작업을 수행하는 것입니다. 메모리는 실제로 필요할 때 자동으로 실현됩니다 .
메모리 사용량이 물리적 한계를 초과하고 서버가 중단되면 약간의 메모리 누수가 발생하여 메모리를 디버깅해야합니다.
“캐시”주제에 대한 흥미로운 기사 :
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
답변
답변
첫 번째는 이전에 말했듯이 패치하여 문제가 해결되는지 확인하는 것입니다.
둘째, 그래도 작동하지 않으면 프로세스 탐색기 를 사용하여 메모리 사용량을 더 잘 살펴보십시오. 보기 메뉴로 이동 한 다음 열 선택, 메모리 처리 및 개인 바이트, 가상 크기 및 작업 세트 크기 옵션을 확인하십시오. 그것이 여기에 책임이있는 것을 나타내는 지보십시오.
그런 다음 서비스를 중단하는 것이 과감한 접근 방식입니다. 예를 들어 응용 프로그램 풀과 웹 가든이 잘못 구성되어 (너무 많은 경우) IIS는 총 메모리 피그가 될 수 있습니다.
행운을 빕니다!