8GB RAM과 16GB 스왑 이있는 데비안 (버스터) 랩톱이 있습니다. 나는 매우 오래 실행되는 작업을 실행하고 있습니다. 이것은 지난 6 일 동안 노트북이 계속 켜져있는 상태임을 나타냅니다.
이 작업을 수행하는 동안 정기적으로 랩톱으로 랩톱을 사용해야합니다. 이것은 문제가되지 않습니다. 오래 실행되는 작업은 I / O 바운드이며 USB 하드 디스크의 작업을 수행하며 많은 RAM (<200MB) 또는 CPU (<4 %)를 사용하지 않습니다.
문제는 몇 시간 후에 랩톱으로 돌아올 때 매우 느리며 정상으로 돌아 오는 데 30 분이 걸릴 수 있다는 것입니다. 이는 크래시 모니터가 해당 응용 프로그램을 정지 (특히 브라우저 창) 한 것으로 플래그를 지정하고 문제가 발생하기 시작합니다.
절반 정도 사용 된 2.5GB 중 시스템 모니터를 보면 스왑으로 전환됩니다. 스왑 공간 ( swapoff /dev/sda8
) 을 제거하여 이것이 문제임을 확인했습니다 . 스왑 공간을 남기지 않으면 24 시간이 지나도 거의 즉각적으로 다시 살아납니다. 스왑을 사용하면 처음 5 분 동안 만 6 시간 동안 방치 된 벽돌입니다. 부재중에도 메모리 사용량이 3GB를 초과하지 않는 것을 확인했습니다 .
나는 swappiness ( 또한 Wikipedia 참조 )를 10
and의 값으로 줄이려고 시도했지만 0
여전히 문제가 지속됩니다. 하루 동안 활동이 없으면 커널은 전체 GUI가 더 이상 필요하지 않다고 생각하고이를 RAM에서 제거합니다 (디스크로 교체). 장기 실행 작업은 방대한 파일 트리를 읽고 모든 파일을 읽습니다. 캐싱이 도움이된다는 생각으로 커널이 혼동 될 수 있습니다. 그러나 파일 이름이 ~ 10 억 개인 2TB USB HD를 한 번 훑어 보면 GB RAM이 추가로 성능에 큰 도움이되지 않습니다. 하드 드라이브가 느린 저렴한 노트북입니다. 단순히 RAM에 데이터를 충분히 빨리 다시로드 할 수 없습니다.
비상시 스왑 공간 만 사용하도록 Linux에 지시하려면 어떻게해야합니까? 스왑없이 달리고 싶지 않습니다. 예기치 않은 일이 발생하고 OS에 갑자기 몇 GB가 더 필요한 경우 작업이 종료되는 것을 원하지 않으므로 스왑 사용을 선호합니다. 그러나 현재 스왑을 활성화하면 랩톱을 필요할 때 사용할 수 없습니다.
"비상"에 대한 정확한 정의는 토론의 문제 일 수 있습니다. 그러나 의미하는 바를 명확히하기 위해 : 프로세스가 스왑 또는 종료하는 것 이외의 다른 옵션없이 시스템이 남아있는 비상 사태가 발생할 수 있습니다.
응급 상황이란 무엇입니까? - 정말로 물어봐야합니까? .. 당신은 절대 불타는 건물에서 자신을 찾지 않기를 바랍니다!
이 질문에서 비상 사태를 구성 할 수있는 모든 것을 정의 할 수는 없습니다. 그러나 예를 들어, 커널이 메모리에 너무 밀려 OOM Killer로 프로세스 종료를 시작했을 때 긴급 상황이 발생할 수 있습니다 . 커널이 스왑을 사용하여 성능을 향상시킬 수 있다고 생각할 때 비상 사태는 아닙니다.
최종 편집 : 운영 체제 수준에서 요청한 내용을 정확하게 수행하는 답변을 수락했습니다. 미래 독자들은 또한 응용 프로그램 수준 솔루션을 제공하는 답변에 유의해야합니다.