내 Fedora 랩탑에서는 스왑 파티션이 나에게 아무 소용이 없는 것 같아서 비활성화했습니다. SSD에 쓰기가 시작되면 시스템이 중지됩니다. 이 정도의 메모리를 소비하는 애플리케이션은 일반적으로 멈추지 않으므로 일단 할당하면 점점 더 많은 메모리를 할당합니다(gitk에는 1M 줄 차이가 있고 메모리 누수가 있는 버그가 있는 프로그램 등이 있습니다...).
메모리가 소진되면 시스템이 SSD에 쓰는 것을 여전히 발견했습니다. 스왑이 활성화되지 않은 것 같습니다.
$ free -h
total used free shared buff/cache available
Mem: 7,7G 2,2G 455M 685M 5,1G 4,8G
Swap: 0B 0B 0B
SSD로 교체하는 대신 커널이 프로그램을 종료하도록 하려면 활성화해야 하는 설정은 어디에 있습니까?
답변1
내 생각에는 당신이 찾고 있는 것이 /proc/sys/vm/overcommit_memory
메모리 할당 확인을 강제하려면 2로 설정해야 합니다(프로그램은 실제로 사용 가능한 것보다 더 많은 메모리를 할당할 수 없습니다). /proc/sys/vm/overcommit_ratio
적어도 프로그램이 설치된 메모리의 절반 이상을 할당해야 하는 경우에는 조정이 필요할 수도 있습니다 .procfs
맨페이지이 모든 것을 문서화하십시오.
모든 스왑을 비활성화하기로 한 결정을 다시 생각해 보시기 바랍니다.Linux에 가상 머신에 스왑 공간이 필요한 이유는 무엇입니까?더 알아보기.
스왑이 비활성화되면 커널을 스왑 아웃할 수 없다는 점은 주목할 가치가 있습니다. 할 수 있는 일은 매핑된 파일을 백업 저장소로 사용하는 것뿐이지만 일반적으로 쓰기 작업은 포함되지 않습니다(특히 실행 파일 및 라이브러리의 경우). 스트레스 상태에서 쓰기가 발생하는 경우 커널이 더티 페이지(주로 해당 버퍼)를 회수하기 위해 플러시하고 있기 때문일 수 있습니다.