누구든지 포크 프로세스의 모든 메모리가 디스크로 스왑 아웃되는 것을 막는 리눅스 유틸리티를 알고 있습니까? 나는 'mlockall'콜을 보았지만 앱을 해킹하는 것은 과잉처럼 들립니다.
이것을 필요로하는 이유는 Linux netbook의 VirtualBox에서 Windows XP를 실행하고 있기 때문에 기본적으로 두 가지 수준의 스와핑이 진행되고 있다는 것입니다.
누구든지 포크 프로세스의 모든 메모리가 디스크로 스왑 아웃되는 것을 막는 리눅스 유틸리티를 알고 있습니까? 나는 'mlockall'콜을 보았지만 앱을 해킹하는 것은 과잉처럼 들립니다.
이것을 필요로하는 이유는 Linux netbook의 VirtualBox에서 Windows XP를 실행하고 있기 때문에 기본적으로 두 가지 수준의 스와핑이 진행되고 있다는 것입니다.
답변:
단일 프로세스 mlock
와 그 친척이 유일한 방법이라고 생각합니다.
시스템 전체에서 "스왑"을 통해 더 나은 성능을 얻을 수 있습니다. 시도 sysctl vm.swappiness
값을 읽어와 sysctl -w vm.swappiness=N
로 설정하는 N
곳은 현재보다 약간 작은 수입니다. (극한을 원하면 커널에게 스와핑보다 캐시 된 페이지를 항상 제거해야한다고 알리려면 0을 시도하십시오.)
실제로 "스왑"하는 경우 (즉, 디스크에서 실제로 사용량이 많은 경우) 시스템에 더 많은 메모리가 필요합니다.
RAM이 충분하면 더 많은 물리적 램을 확보하기 위해 일부 '휴식'프로세스를 페이징하는 것 외에는 OS가 스왑되지 않습니다.
직접 질문에 대답하지는 않지만 zram / 캐시 가능 커널을 설치하면 약간의 이점을 얻을 수 있습니다.
이 방법으로 시스템은 여전히 페이지 아웃 ( "스왑")되지만 램을 만드는 데 대부분의 작업을 수행하며 압축 덕분에 실제 램 (활성 메모리 또는 zcache)에 보관 된 메모리 페이지의 양이 일반적인 비 압축 램에서 얻는 것.
시스템이 스왑 메모리를 사용하기 시작하는 지점을 제어 할 수도 있습니다. 컴퓨터의 현재 값이 무엇인지 알려줍니다.
고양이 / proc / sys / vm / swappiness
대략 기본적으로 리눅스는 60이었습니다. 대략적으로 말하면, RAM의 40 % 만 사용하면 컴퓨터가 스왑 파티션을 사용하기 시작합니다. 이것은 오래된 컴퓨터의 안전한 기본값이었습니다. 그러나 RAM이 충분하면 스왑을 줄일 수 있습니다.
즉석에서:
sudo sysctl vm.swappiness = 10
sudo swapoff -a
sudo swapon -a
또는 vm.swappiness = 10을 /etc/sysctl.conf(Debian 용)에 추가하여 영구적으로.
60
있습니다. 이것은 램이 3.5GB 인 새로운 머신입니다.