우리는 Red Hat Enterprise Linux 버전 7을 실행하고 있으며 모든 머신은 가상 머신입니다.
우리는 메모리 리소스가 제한되어 있고 물리적 RAM은 비용이 들기 때문에 메모리를 추가하는 대신 스왑을 추가하는 것을 고려하고 있습니다.
이것이 좋은 생각입니까?
둘째, 운영 체제가 언제부터 스왑을 사용하기 시작했습니까?
답변1
아니요, 이것은 나쁜 생각입니다.
스왑을 메모리 확장을 위한 메커니즘으로 생각해서는 안 됩니다. 스왑은 메모리의 일부를 저장하지 않는 저장 영역입니다.가지다물리적 메모리에 남아 있으며 그 내용은 다른 곳에는 존재하지 않습니다. 바라보다Linux에 가상 머신에 스왑 공간이 필요한 이유는 무엇입니까?더 알아보기.
가상 머신 내에서 실행 중인 프로세스에 메모리가 부족하면 명목 작업과 최악의 시나리오 모두에서 실제 작업 세트가 무엇인지 확인해야 합니다. 그런 다음 메모리 사용량을 줄일 수 없다고 가정하면 RAM 할당, 스와핑, 커널 구성(스와핑 등)을 수용할 수 있도록 메모리 설정을 구성해야 합니다. RAM 할당은 각 호스트가 실행할 수 있는 가상 머신 수에 직접적인 영향을 미치며, 호스트에 메모리를 추가할 수 없는 경우 이는 실제로 주요 조정 변수가 되어야 합니다. (물론 비용 측면에서는 도움이 되지 않습니다...) VM이 필요한 용도에 따라 컨테이너를 사용하는 것이 또 다른 전략일 수 있습니다. 이렇게 하면 오버헤드를 줄일 수 있습니다.
운영 체제는 일반적으로 메모리를 할당해야 하고 사용 가능한 물리적 메모리를 모두 소진했을 때 스왑을 사용하기 시작하며, 현재 물리적 메모리에서 가장 적게 사용되는 메모리 페이지에는 소위 백업 저장소가 없습니다(또는 오히려 백업 저장소가 스왑임). 프로그램에 더 많은 메모리가 필요할 때 커널은 먼저 사용 가능한 메모리를 찾은 다음 삭제할 수 있는 항목(캐시, 버퍼, 매핑된 실행 파일 등)의 계층적 목록을 살펴봅니다. 스왑은 "가시적인" 메모리 부족이 없을 때에도 사용할 수 있습니다. 데이터는 항상 실제 사용되지 않은 메모리에 저장되며, 바람직하게는 스왑 영역에 저장됩니다.
답변2
메모리가 부족하고 RAM을 업그레이드할 여유가 없다면 서버에서 일부 메모리를 확보할 수 있는 방법을 찾아보세요. 일반적으로 실제로 필요하지 않은 프로세스/서비스가 많이 있습니다. 예를 들어, "컵" 인쇄 서비스는 서버 시스템에 필요하지 않습니다. 따라서 해당 서비스를 모두 식별하고 비활성화하십시오.
추가 "스왑"을 추가해도 아무런 해가 없지만 RAM을 대체하지는 않는다는 점을 명심하세요. 애플리케이션이 스왑을 사용하기 시작하면 심각한 성능 저하가 발생합니다.
답변3
Stephen Kitt의 뛰어난 답변에 추가: 물리적 시스템에서 스왑 사용을 계획하는 것은 아마도 나쁜 생각일 것입니다. 가상 환경에서는아주 나쁜 생각모든 I/O가 (일부) 공통 중앙 저장 장치에 집중되어 있기 때문입니다.
기본적으로 인프라 성능을 향상하려면 I/O를 최소화하고 상황을 악화시키지 않는 전략을 개발해야 합니다.