page cache나 buffer cache를 말하는 거라면 대개의 경우 별로 신경쓸 필요가 없습니다. free memory가 적게 나온다고 하더라도 커널은 메모리가 필요하면 알아서 cache 크기를 줄이기 때문에 프로그램 실행에 영향을 미치지 않습니다.
커널 내부에는 memory zone마다 min, low, high watermark를 가지고 메모리 사용을 조정합니다. 이는 어느정도 free memory가 남았을 때 메모리를 더 확보할지 여부를 결정합니다. 이것은 prompt 상에서 바꿀 수는 없고, 커널 코드 상에서 바꿀 수 있습니다.
다른 것으로 메모리를 확보하는 시점에서 이를 하는 방법들을 조정할 수 있습니다. /proc/sys/vm 밑에 있는 vm_passes나 vm_cache_scan_ratio 같은 것을 바꿔볼 수 있습니다. dirty buffer를 해제하는 것과 관련해서는 bdflush 같은 파일을 건드려볼 수 있습니다.
Freedom is another word for nothing left to lose,
Nothing doesn't mean nothing if it ain't free.
말씀 하신 cache 가 어떤 cache 인지는 모르겠습니다.만약
말씀 하신 cache 가 어떤 cache 인지는 모르겠습니다.
만약 I/O 작업 때문에 생기는 cache 라면 (ext2 , ext3 가 사용하는 Bitmap
cache 라면) EXT_MAX_GROUP_LOADED 라는 상수값에 버퍼의 크기
를 저장할수 있습니다. (ext2 의 경우는 linux/include/linux/ext2_fs_sb.h
에 있습니다.)쓰기 작업때 사용된 블럭에 대한 inode buffer 하고 bitmap
buffer 를 계속해서 캐쉬 하기 떄문이 아닐까
합니다.
Dig it.
page cache나 buffer cache를 말하는 거라면 대개의 경우
page cache나 buffer cache를 말하는 거라면 대개의 경우 별로 신경쓸 필요가 없습니다. free memory가 적게 나온다고 하더라도 커널은 메모리가 필요하면 알아서 cache 크기를 줄이기 때문에 프로그램 실행에 영향을 미치지 않습니다.
커널 내부에는 memory zone마다 min, low, high watermark를 가지고 메모리 사용을 조정합니다. 이는 어느정도 free memory가 남았을 때 메모리를 더 확보할지 여부를 결정합니다. 이것은 prompt 상에서 바꿀 수는 없고, 커널 코드 상에서 바꿀 수 있습니다.
다른 것으로 메모리를 확보하는 시점에서 이를 하는 방법들을 조정할 수 있습니다. /proc/sys/vm 밑에 있는 vm_passes나 vm_cache_scan_ratio 같은 것을 바꿔볼 수 있습니다. dirty buffer를 해제하는 것과 관련해서는 bdflush 같은 파일을 건드려볼 수 있습니다.
Freedom is another word for nothing left to lose,
Nothing doesn't mean nothing if it ain't free.
댓글 달기