대부분 이러한 오류 메시지는 memory fragmentation 가 원인이다.
프로그램은 연속된 메모리상에 할당하려고 시도하는데 연속된 영역이 없는 경우 이러한 일이 발생할 수 있다.
이 문제를 위해서 아마 아래의 옵션중 1개 이상을 취해야 할 것이다.
아래의 VM(메모리 부분) 관련한 파라메터를 /etc/sysctl.conf 에서 튜닝해라.
vm.lower_zone_protection=100
0보다 높이 설정하는 것은 allocator가 highmem에 할당할 수 있도록 lowmem을 사용을 회피하도록 한다.
vm.vfs_cache_pressure=200
100보다 높이 설정하는 것은 커널이 스스로 파일시스템 메타데이타의 캐쉬를 가져오기 위한 것을 증가시킨다.
따라서 lowmem는 좀더 자주 fragmentation 를 감소시킨다.
hugemem kernel를 사용하는 것을 고려해라. 이 커널은 거의 4G의 lowmem 영역을 가지고 있다.
만약 64bit 하드웨어에 64bit커널을 사용하지 않는다면 64bit 커널 사용하는 것을 고려해라.
VM 관리의 향상이 있게된다.
>>>관련url
Why is oom killer killing random processes when there appears to be plenty of memory in my Red Hat Enterprise Release 4 Update 4 system?
http://kbase.redhat.com/faq/docs/DOC-3993
Why does my 32-bit Red Hat Enterprise Linux 4 system with a SATA controller run out of memory very quickly?
http://kbase.redhat.com/faq/docs/DOC-3473