32GB RAM이 있습니다. SSD 및 비SSD 드라이브.
SSD가 아닌 드라이브에 리눅스를 설치했는데, /var 디렉터리는 SSD를 선호하고, 메모리가 많아서 스왑 공간을 만들지 않았습니다.
물리적 메모리 + 스왑 영역 = 가상 메모리라는 것을 알고 있습니다. 나는 리눅스에 거대한 페이지와 메모리 매핑 파일 기능이 있다는 것을 알고 있습니다. 메모리 매핑 파일은 가상 메모리를 사용하는데 파일 처리 전략을 모르겠습니다. 실제 메모리가 높더라도 스왑하면 이점이 있나요?
mysql 데이터베이스로 가져오기 위해 3GB gzip 압축 파일을 처리할 예정입니다. 저는 애플리케이션 cpp 부스트 라이브러리 gzip 메모리 매핑 스트림과 mysql 네이티브 클라이언트 라이브러리를 생성하겠습니다.
- 나의 첫 번째 목표는 파일의 차이점을 감지하는 것입니다. 을 사용하고 싶습니다
ON DUPLICATE KEY UPDATE attempt_count = attempt_count + 1
. - 또한 전체 텍스트 검색 기능이 필요하고 문자열 길이와 같은 일부 기준으로 필터링해야 합니다.
- 관리 인터페이스를 통합해야 합니다.
이에 가장 적합한 구성은 무엇입니까?
답변1
스와핑이 필요한 상황에는 최대 절전 모드, RAM 고갈을 방지하기 위해 RAM에서 메모리 스와핑 등이 있습니다.
따라서 작업 세트를 보관할 만큼 RAM이 충분한 경우 최대 절전 모드만 교체하면 됩니다. 작업 세트가 매우 큰 경우 교체해야 할 수도 있습니다. 그러나 교체가 좋은 아이디어인지 여부는 작업 모델에 따라 다릅니다. 일부 모드는 스왑 지터를 유발하지만 일부 모드는 그렇지 않습니다.
메모리 매핑 파일과 실행 파일을 추가합니다. 커널은 필요한 것만 RAM에 로드하고 필요하지 않은 것은 버립니다. 파일이 백업 저장소(스왑 아님)이므로 스왑이 필요하지 않습니다.