Superkkt Blog

Locking Pages

2009/05/22 00:33

할당받은 메모리가 즉시 실제 공간이 할당되도록 하거나 할당된 공간이 swapd에 의해 디스크로 page out 되는 것을 막는 방법이 있다.

http://www.gnu.org/software/libc/manual/html_node/Locking-Pages.html#Locking-Pages

이것을 사용해서 얻을 수 있는 가장 큰 이점은 속도이다. Page out 자체도 상당한 부하가 있고, 또 page out된 메모리에 접근해서 다시 disk I/O가 생긴다면 이것 역시 부하가 상당하다. 따라서 page out을 금지함으로서 이런 속도 저하를 막을 수 있다.

이 방법은 POSIX 표준에 정의되어 있다. API는 지정된 메모리 영역만 locking 하는 방법과 프로세스의 전체 메모리 영역을 locking 하는 방법이 있다.

그리고 RLIMIT_MEMLOCK 값에 의해 locking 할 수 있는 최대 메모리의 양이 제한되기 때문에 사전에 적절하게 늘려주는게 필요하다. 또한 시스템에 미치는 파급 효과가 크기 때문에 superuser만 이 기능을 사용할 수 있다.

사용시 주의할 점은 프로세스가 많은 메모리를 locking 하고 있으면 그만큼 가용 메모리가 줄어든다. 특히 page out이 금지되어 있기 때문에 실제 가용 메모리가 부족한 경우 다른 프로세스는 메모리 할당에 실패할 수 있고, 전체적으로 시스템이 많이 느려질 수 있다.
2009/05/22 00:33 2009/05/22 00:33

trackbacks

trackbacks rss

이 글에는 트랙백을 보낼 수 없습니다

Leave a Comment