페이지 할당 실패-메모리가 부족합니까?


24

최근 kern.log에 내 서버 중 하나에서 다음과 같은 항목을 발견했습니다 .

Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20

알고 싶습니다 :

  1. 그 메시지는 정확히 무엇을 의미합니까?
  2. 서버에 메모리가 부족합니까?

스왑 사용량은 10 % 미만으로 매우 낮으며 지금까지 메모리 부족으로 인해 프로세스가 종료되는 것을 보지 못했습니다.

추가 정보:

  • 서버는 Debian 6.0을 실행하는 Xen 인스턴스 (DomU)입니다.
  • 512MB의 RAM과 512MB의 스왑 파티션이 있습니다.
  • 가상 머신 내부의 CPU로드는 평균 0.25

답변:


14

데비안 버그 666021도 이와 같은 문제에 대한보고 인 것 같습니다. 제안은 다음과 같습니다.

#change value for this boot
sysctl -w vm.min_free_kbytes=65536

#change value for subsequent boots
echo "vm.min_free_kbytes=65536" >> /etc/sysctl.conf

http://russ.garrett.co.uk/2009/01/01/linux-kernel-tuning/ 이 설정을 변경하는 것이 유용 할 수있는 경우에 대한 논의가 있습니다.

이것은 커널에게 항상 64MB의 RAM을 비우려고 시도합니다. 두 가지 주요 경우에 유용합니다.

  • 들어오는 네트워크 트래픽이 커널을 압도하지 않고 버퍼를 플러시 할 시간이되기 전에 OOM을 강제 실행하지 않으려는 스왑없는 시스템.

  • 동일한 이유로 x86 시스템 : x86 아키텍처는 약 900MB RAM 미만의 DMA 전송 만 허용합니다. 따라서 RAM이 많은 톤으로 기괴한 OOM 오류 상황을 해결할 수 있습니다.

3.2.12-gentoo x86 컴퓨터에서이 설정을 적용했지만 여전히 이러한 오류가 발생합니다.


MPT Fusion SCSI 컨트롤러와 같은 특정 장치에서도 이와 동일한 상황이 발생할 수 있습니다. vm.min_free_kbytes를 약 100MB로 유지하는 것이 좋습니다. 또는 적어도 32 비트 Linux 배포판에서 그런 것들을 사용해야했을 때 사용되었습니다. 그 이후로 상황이 변경되었을 수 있습니다.
Janne Pikkarainen 2016 년

중요 경고 . echo 104857600 > /proc/sys/vm/min_free_kbytes 커널 패닉으로 인해 시스템이 재현 가능 합니다. 읽을 희망이 없었던 과정에서 약간의 텍스트가 화면에 표시되었지만 마지막 메시지는 Wi-Fi 동글과 관련이 있으므로이 깨진 부분은 시스템에 따라 다를 수 있습니다. 그렇게 말하면서 조심스럽게 찌르십시오.
i336_

오, 그것은 킬로바이트 입니다. 104857600 또는 10485760을 사용했는지는 확실하게 기억할 수 없지만 전자를 사용하면 100GB를 예약하려고 했는데이 랩톱 에는 설치 되지 않았습니다 .) 언제든지 VM 에서이 문제를 해결하려고 시도합니다.
i336_

1

방금 Debian 5 및 커널 2.6.39.3 64 비트를 실행하는 Lenovo NAS에서이 오류를 해결했습니다.

https://www.novell.com/support/kb/doc.php?id=7002803 에 따르면 메시지는 무섭게 보이지만 정보를 제공합니다.

그러나 그들은 매우 제한된 루트 파티션을 채우고있었습니다 (이 장치에는 50MB 루트 파티션이 있습니까?!)

나를위한 해결책 vm.min_free_kbytes65536아래 에서 로 설정하는 것이 었 습니다 16384.

이후에도 OS에는 여전히 107MB의 여유 메모리와 2GB의 버퍼가 있습니다. 이것은 의미가 없지만 모든 로깅을 중지했습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.