Linux 시스템이 정지되고 RAM 고갈로 인해 복구할 수 없는 이유

Linux 시스템이 정지되고 RAM 고갈로 인해 복구할 수 없는 이유

저는 4GB RAM과 4GB 스왑 공간이 있는 시스템에서 Ubuntu Desktop 15.10을 실행하고 있습니다. Linux에 대한 내 이해는 RAM이 부족해지기 시작하면 일부 RAM을 다시 얻기 위해 프로세스를 종료하기 시작한다는 것입니다.다른 문제.

제가 관찰한 바에 따르면 시스템에 메모리가 부족해지면 시스템이 정지됩니다. 마우스 및 키보드 입력이 작동하지 않습니다. 커널이 이 상태에서 복구를 시도하는지 실험적으로 파악하기 위해 시스템을 밤새 이 상태로 두었지만 복구되지 않았습니다.

데스크탑의 동작이 변경되었습니까? 시스템이 공간을 확보하기 위해 앱을 종료하지 않는 이유는 무엇입니까? 활성화/비활성화해야 하는 몇 가지 설정이 있습니까?

실행되는 응용 프로그램은 브라우저, 메일 클라이언트, 터미널, 음악 플레이어 등 꽤 표준적인 것입니다.

고쳐 쓰다: 자유-m시스템이 정상적으로 실행될 때의 출력은 다음과 같습니다.

total       used       free     shared    buffers     cached Mem:    
3271         3145       126      432         32        694
 
-/+ buffers/cache:       2418        853 

 Swap:         7503       1424       6079

시스템이 자주 정지되는 것을 방지하기 위해 스왑 공간(현재 7GB 이상)을 늘렸습니다.

답변1

실제 진단 정보가 없기 때문에 정확한 진단이 어렵습니다. 그러나 메모리는 이를 필요로 하는 프로세스에 제공되는 리소스입니다. 시스템에 더 이상 요청을 처리할 물리적 메모리가 없는 경우 몇 가지 옵션이 있습니다.

일반적인 해결책은 스왑 영역을 가상 메모리로 사용하는 것입니다. 그런 다음 시스템은 스왑 회전 상태에 들어가 다른 무엇보다 줄어드는 메모리를 관리하고 항목을 교환하는 데 더 많은 시간을 소비할 수 있습니다.

그러나 상황은 동결되지 않으며 커널에는 여전히 자체적으로 예약된 리소스가 있습니다. 하지만 상황은 매우 느려질 것입니다.

그러나 설명하는 상황은 다릅니다. 시스템이 과도한 리소스 할당 모드로 전환된 후 정지된 것 같습니다. 즉, 더 이상 실행 중인 커널이 없으므로 커널은 리소스 경합을 완화하기 위해 아무것도 할 수 없습니다.

이는 하드웨어 문제를 나타낼 수 있습니다(비록 커널 버그일 수도 있음). 즉, 과도한 리소스 할당 주기로 인해 하드웨어 오류가 발생합니다. 메모리 스틱이 불량하거나 부하가 심한 경우에만 나타나는 기타 불안정한 하드웨어 문제가 있을 수 있습니다.

요즘 대부분의 Linux 시스템에는 시스템 부팅 메뉴에서 쉽게 사용할 수 있는 memtest 옵션이 있거나 있다고 생각합니다. 시도해 보고 많은 메모리 테스트를 실행하여 재현할 수 있는지 확인할 수 있습니다.

또 다른 데이터 포인트는 시스템이 어떤 방식으로든 아직 살아 있는지 확인하는 것입니다. 로컬 GUI가 잠겨 있거나 사용 중일 수 있지만 시스템은 여전히 ​​핑에 응답하고 원격 로그인도 허용할 수 있습니다. 다음에 이런 일이 발생하면 다른 호스트에서 해당 호스트에 액세스해 보십시오. 핑이나 텔넷 시도에 대한 응답이 느리더라도, 심지어 시간 초과가 발생하더라도 시스템이 완전히 응답하지 않으면 다른 응답이 됩니다.

이는 이전에 다른 SE에서 다루어진 적이 있습니다., 이로 인해 이 답변이 중복될 수 있습니다. 이 경우 모더는 이를 자유롭게 제거해야 합니다.

관련 정보