RAM이 충분할 때 시스템을 교체하는 이유는 무엇이며 이것이 유해합니까?

RAM이 충분할 때 시스템을 교체하는 이유는 무엇이며 이것이 유해합니까?

저는 부하가 꽤 높은 SSD가 장착된 64GB RAM 루트 베어 메탈 우분투 16.04 서버를 운영하고 있습니다. 이제 클라우드 서버는 장기적으로 SSD를 사용할 수 있으므로 일반적으로 스왑을 비활성화한다는 것을 알게 되었습니다. 이로 인해 충분한 RAM을 사용할 수 있어 필요하지 않은 동안 서버가 교체되므로 서버에 대해 걱정하게 됩니다.

대시보드 스크린샷여기

이것이 정상입니까, 아니면 교환을 비활성화하는 등의 조치를 취하는 것이 좋습니까?

답변1

짧은 답변:예, 이는 정상적인 현상이므로 걱정할 필요가 없습니다.

긴 답변:Linux는 충분한 메모리를 사용할 수 있는 경우에도 일부 스왑을 사용합니다. 그 근거는 최근에 읽거나 쓴 데이터를 캐싱하는 것이 오래된 비활성 프로그램 코드 및 데이터를 RAM에 보관하는 것보다 더 유용할 수 있다는 것입니다. 이 바이어스는 swappinesssysctl 조정 가능 항목을 통해 수정될 수 있습니다. 로부터커널 문서:

교환성

이 컨트롤은 커널이 메모리 페이지를 얼마나 적극적으로 교환할지 정의하는 데 사용됩니다. 값이 높을수록 공격성이 증가하고 값이 낮을수록 스왑 양이 감소합니다. 값이 0이면 사용 가능한 페이지와 파일 지원 페이지의 양이 영역의 최고 워터마크보다 작아질 때까지 스왑을 시작하지 않도록 커널에 지시합니다.

기본값은 60입니다.

스왑을 정말로 줄이고 싶다면 다음을 swappiness통해 값을 낮출 수 있습니다.sysctl vm.swappiness=10 또는 echo 10 > /proc/sys/vm/swappiness. 재부팅할 때까지 유효하다는 점을 기억하세요. 재부팅 사이에 이를 유지하려면 파일을 편집해야 합니다 /etc/sysctl.conf.

스왑을 완전히 비활성화하려면 다음을 사용할 수 있습니다 ( 재부팅 후에도 유지되도록 swapoff -a관련 항목에 주석 처리 )./etc/fstab

답변2

리눅스가 바뀌었다고 비명을 지르지 마세요.사실은건강한 서버에서는 이것이다최적화된 서버의 징후는 아니더라도 완전히 정상입니다.이는 "낮은" 교환이 가능하기 때문입니다.때로는 귀하와 드라이브의 귀중한 IO 작업을 드라이브에 저장합니다.. 드라이브의 활동이 적을수록(최신 NVMe 어레이에서도 비용이 많이 드는 프로세스) 더 좋습니다.

또한교환이 공격적이지 않는 한SSD에 큰 피해를 주지 않습니다. 특히 클라우드에 사용되는 SSD는 대부분세포가 모두 죽기 전에 PB(s) 범위에서 지속되도록 제작되었습니다.

답변3

메모리는 항상 할당 및 할당 취소되며 이로 인해 조각화가 발생합니다. 할당된 메모리의 일부 뒤에 할당되지 않은 메모리의 일부가 따라옵니다. 할당되지 않은(사용 가능한) 메모리 부분은 시간이 지남에 따라 점점 더 작아질 수 있습니다. 어떤 시점에서는 프로세스가 단일 연속 블록으로 사용할 수 없는 일정량의 메모리를 할당해야 할 수도 있습니다. 스와핑은 메모리를 확보하고 그렇지 않으면 사용할 수 없는 여유 메모리의 더 큰 연속 부분을 생성하는 데 도움이 됩니다.

관련 정보