캐시/버퍼 메모리는 애플리케이션에서 요청하면 항상 즉시 해제됩니까?

캐시/버퍼 메모리는 애플리케이션에서 요청하면 항상 즉시 해제됩니까?

클라우드 서비스 중 하나의 지원에 대해 지속적으로 논의 중입니다. 문제는 "사용 가능한 메모리" 및 "사용 가능한 스왑" 지표에 사용 가능한 메모리가 많이 표시됨에도 불구하고 "메모리를 할당할 수 없음" 오류(PostgreSQL에서 할당한 공유 메모리 세그먼트)가 발생한다는 것입니다.

지원팀에서는 공유/버퍼 메모리(IO 캐시)가 "활성 상태이므로 직접 해제할 수 없으며" 버퍼에서 애플리케이션으로 메모리를 재할당하는 작업이 즉각적이지 않고 시간이 좀 걸리기 때문이라고 주장합니다.

내가 아는 한, Linux 커널은 항상 I/O 캐시의 메모리를 애플리케이션에 즉시 재할당할 수 있기 때문에 그렇지 않습니다. 내가 맞나요?

답변1

습관. 메모리의 최종 릴리스는 운영 체제에 의해 수행되며 시간이 걸릴 수 있습니다. 메모리는 나중에 다른 작업에서 필요할 때 임의의 시간에 회수될 수 있습니다.

출시되면 지워질지 궁금하시다면매우그럴 가능성은 거의 없으며, 아무 이유 없이 추가 작업이 필요할 수는 없습니다. 메모리에 민감한 데이터가 포함되어 있는 경우 메모리를 정리한 다음 해제해야 합니다.

관련 정보