Linux가 운영 체제 교체를 보호하지 않는 이유는 무엇입니까?

Linux가 운영 체제 교체를 보호하지 않는 이유는 무엇입니까?

내가 이해한 바로는 RAM이 가득 차고 커널이 디스크에서 RAM으로 페이지를 앞뒤로 이동하기 시작하면 프로그램의 응답 속도가 느려집니다. 그러나 내 경우에는 스왑을 시작할 때마다 전체 시스템이 멈춥니다(또는 마우스가 10초마다 움직이면서 끔찍하게 지연됩니다). 나는 이것이 OS가 물건을 옮기느라 너무 바쁘거나 교체하기 위해 자체 부품을 옮기고 있기 때문이라고 생각합니다.

그래픽 인터페이스(X)를 포함한 OS의 주요 구성 요소를 교체(RAM에 고정하여)로부터 보호하여 최소한 반응하는 OS를 확보하는 동시에 다른 응용 프로그램이 지연되는 것을 방지할 수 없는 이유는 무엇입니까? (또는 커널이 너무 바쁜 것이 문제라면 스왑 우선순위를 낮게 설정하시겠습니까?)

답변1

먼저, 다음 줄을 사용하여 운영 체제가 스왑을 사용하는 정도를 나타내는 "swappiness"를 변경할 수 있습니다.

sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"

운영 체제가 X 서버를 잠그지 않는 이유에 대한 대답은 간단합니다. 이는 단지 사용자의 사용 사례일 뿐입니다. 내 스크립트로 무언가를 계산하는 경우 가능한 한 빨리 처리하고 싶습니다(그리고 가능한 한 빨리 끝나기를 바랍니다). 불필요한 프로그램을 메모리에 유지하면 프로그램이 스와핑을 사용해야 하므로 속도가 훨씬 느려집니다. 규모의 순서.

이렇게 메모리 집약적인 스크립트를 실행하는 많은 사용자는 X를 전혀 사용하지 않거나 PC에 관심이 없기 때문에 X를 사용하지 않습니다.

요약: 이것은 복잡한 설계 결정이며 현재 솔루션이 아마도 최고일 것입니다.

답변2

운영 체제의 주요 구성 요소 보호에 대해 이야기한다면하지만 스왑을 비활성화하면 그렇게 하지 않기를 바랍니다. (어쨌든 그렇게 할 수는 없습니다. 오래 전에는 실행 파일이 +t커널에 스왑하지 말라고 지시하는 끈적한 비트를 존중했지만 오늘날에는 무시되기 때문입니다.) 커널이 스왑이 발생해야 한다고 결정하면 유효한 이유가 있어야 합니다. 유휴 RAM은 낭비되는 리소스이기 때문에 Linux는 메모리를 매우 적극적으로 사용합니다.

이제 전체 스왑 공간을 닫기로 결정한 경우 다음을 통해 수행할 수 있습니다.

스왑 영역을 비활성화하려면:swapoff [-v] specialfile...

모든 스왑 영역을 비활성화합니다.swapoff -a

이것도 보세요답변더 많은 정보를 알고 싶습니다.

관련 정보