스왑 영역을 비활성화합니다. 메모리 부족으로 인해 시스템이 여전히 매우 느립니다.

스왑 영역을 비활성화합니다. 메모리 부족으로 인해 시스템이 여전히 매우 느립니다.

내 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에 가상 머신에 스왑 공간이 필요한 이유는 무엇입니까?더 알아보기.

스왑이 비활성화되면 커널을 스왑 아웃할 수 없다는 점은 주목할 가치가 있습니다. 할 수 있는 일은 매핑된 파일을 백업 저장소로 사용하는 것뿐이지만 일반적으로 쓰기 작업은 포함되지 않습니다(특히 실행 파일 및 라이브러리의 경우). 스트레스 상태에서 쓰기가 발생하는 경우 커널이 더티 페이지(주로 해당 버퍼)를 회수하기 위해 플러시하고 있기 때문일 수 있습니다.

관련 정보