Memory가 반환이 안되고 있습니다.
cup 사용율도 5%미만이고 sql server에 수행되는 query나 transaction이 거의 없는 O/S에서 memory가 사용율이 70% 가 넘습니다.
Sql Server의 Memory 사용율을 줄이는 방법이 없을까요?
어느 영역을 조정하여야 하나요?
-- 아래는 현재 메모리 상황입니다.
physical_memory = 128GB
max server memory = 102.4GB -- 이거는 O/S Memory의 80%로 정했습니다.
select total_physical_memory_kb/1024 as "Total Memory MB"
, available_physical_memory_kb/(total_physical_memory_kb*1.0) *100 as available_persent
from sys.dm_os_sys_memory
Total Memory MB available_persent
130978 27.57447818706904
dbcc memorystatus
Available Physical Memory 37854244864
Available Virtual Memory 140515793162240
Available Paging File 57994739712
Working Set 94762766336
Percent of Committed Memory in WS 100
Page Faults 39216665
System physical memory high 1
System physical memory low 0
Process physical memory low 0
Process virtual memory low 0
Comment 4
-
이리
2017.12.15 16:28
-
lobb
2017.12.16 09:59
max server memory = 102.4GB 이 값은 줄이지 않으려고 합니다 최고 가용을 전체 메모리에 80%까지 사용으로 유지할려고 합니다.
내가 찾고 싶은 방법은 SQL SERVER 가 사용하지 않게 된 memory를 O/S에 돌려주는 방법을 찾고 싶습니다.
-
자리비움
2017.12.16 20:41
dbcc 로 비우시거나 서버를 재시작하시거나 캐시 내용을 확인하신 후 수동으로 날리셔야 합니다.
SQL Server 는 한번 캐시에 올리고 메모리 압박이 없으면 잘 안내립니다.
그리고, 최대 가용 메모리 100% 까지 도달한다고 해서 일반적으로 바로 장애가 바로 나지는 않습니다.
(물론 장애가 발생할 상황이면 80%, 100%, 200% 던지 상관없이 발생하겠지만요)
100% 까지 사용해도 되고, 메모리 압박 여부를 perfmon, dmv 등을 통해 확인하시면 될 것 같습니다.
메모리 128기가짜리 장비를 DB 전용 서버 이외의 목적으로 사용할 것 같지는 않으니, 굳이 OS 에 돌려주실 필요는 없어 보입니다.
-
이리
2017.12.16 22:16
buffer에 있는 메모리를 비우면 data 조회시 disk에서 읽어 오게 되어 성능이 안좋아 질 수 있습니다.
어떤 목적으로 메모리 반환을 생각하시는지 궁금합니다.
sql server에서 사용하는 메모리를 제한 하시려면 min/max 메모리 설정을 낮추시면 됩니다.
sql server 메모리 사용의 대부분은 Buffer Cache로 사용중일겁니다.