이것은 나쁜 생각입니다. 이것이 유용하다면, 리눅스 커널은 이것을 구현할 것입니다. 나는 단순한 쉘 스크립트가 커널 개발자의 알고리즘보다 더 영리하지 않기 때문에 몇 가지 튜닝 매개 변수 이상을 변경해야 할 이유가 있다고 생각하지 않습니다.
기본적으로 두 가지 경우가 있습니다.
- 스왑 공간의 프로세스는 어쨌든 사용되지 않습니다. RAM으로 다시 가져 오려는 이유는 무엇입니까?
- RAM이 거의 없으므로 스왑 아웃되어 RAM으로 다시 가져옵니다. 그런 다음 시스템은 가능한 빨리 다시 스왑으로 전환합니다.
따라서 두 가지 주요 사항이 있습니다.
- 첫째, 모든 프로그램을 한 번에 실행할 수있는 RAM이 너무 적 으면 시스템 속도가 느려집니다. 스왑은 더 많은 프로그램을 실행하는 데 도움이되지만 거의 사용되지 않는 프로그램으로 빠르게 전환되지는 않습니다. 스왑은 거의 사용하지 않는 것을 얻거나 현재 사용 된 것을 메모리 부족 예외를 보낼 수 없습니다.
- 둘째, 스왑은 좋은 일이므로 현재 사용하지 않는 프로그램 비용으로 무료 RAM이 있으므로 스왑에 물건이 있습니다.
너무 많은 프로그램에서 메모리 부족 문제가 발생하지 않더라도 일부 프로그램은 현재 사용 가능한 RAM을 기반으로 메모리를 할당 할 수 있으며 (브라우저에서 더 많은 memcache를 사용하고 더 빠르게 탐색 할 수 있음) 커널은 디스크 캐싱 및 비슷한 최적화. 스왑을 강제로 비우면 커널이 읽기 캐시를 삭제하므로 새 Firefox 인스턴스를 시작하면 Firefox가 디스크 캐시에있을 때보 다 시간이 오래 걸립니다.
커널의 동작을 조정하려면 swappiness 매개 변수를 참조하십시오 .
@ peter-cordes는 두 가지 추가 리소스를 제공합니다.
빈 스왑을 원한다면 스왑을 영구적으로 해제 할 수 있습니다. 나는 왜 한 시간 동안 그것을 켜고 비우는 것이 스왑을하지 않는 것보다 이점이 있는지 알지 못합니다.