문제 요약:Ratarmount의 메모리 사용량을 줄이는 방법이 있습니까? 메모리 사용량에 영향을 미치는 요인은 무엇입니까(tar 크기 제외)?
질문 편집/설명:상주 메모리를 최소한으로 줄이려면 어떤 방법을 사용할 수 있습니까?
내 상황:
- 나는 Ratarmount를 사용하여 많은 수의 tar 파일을 마운트하고 있습니다(예: 800GB가 내가 가진 가장 큰 파일입니다).
- 6x6TB 드라이브, 20개 코어, 256GB RAM을 갖춘 서버가 있습니다.
- 나는 그러한 tar 파일을 약 20-25tb 정도 설치했습니다.
- 위의 tar 파일 수를 설치한 후 내 서버의 RAM이 최대 용량인 ~250GB에 도달했습니다.
- tar 파일에는 많은 수(아마 수억 개)의 작은 파일과 폴더가 있습니다.
내 질문: Ratarmount의 메모리 사용량은 이제 240GB에 도달하여 서버 메모리를 거의 소진했습니다. 또한 5-10TB의 tar 파일을 추가로 설치해야 합니다.
이는 사용하는 메모리 양과 약간 일치하지 않는 것 같습니다. 예를 들어, 처음 마운트하면 인덱스 파일에서 마운트할 때보다 더 많은 메모리를 사용하게 됩니다. 효율성을 줄이기 위해 무엇을 시도할 수 있는지는 나에게 약간 미스터리입니다. 어떤 아이디어에도 열려있습니다. 프로젝트를 완료하려면 메모리 사용량을 약 25% 줄여야 합니다.
사이드 노트... 나는 보았다사용자라타힐이 탄생했습니다. 이것은 훌륭한 프로그램이고 나를 완전히 구해줬지만 그 사람에게 연락하는 방법이나 여기나 github에서 사람들에게 연락하는 확립된/허용된 방법이 무엇인지 모르겠습니다.
답변1
방금 ratarmount
10M 파일로 테스트했습니다. stat
모든 파일을 사전에 처리하지 않으면 ratarmount
결국 교체됩니다.
따라서 매우 간단한 해결책은 서버에 스왑 공간을 추가하는 것입니다. 사용하면 zswap
물리적 디스크를 건드리지 않아도 됩니다.
또한 인덱스+마운트를 수행하면 단순히 마운트를 수행하는 것보다 더 많은 메모리가 필요하다는 귀하의 관찰을 확인했습니다. 이는 메모리 누수가 있음을 의미합니다 ratarmount
(아마도 데이터 구조가 복사되었고 원치 않는 복사본이 파괴되지 않았을 수 있습니다). 따라서 인덱싱 + 마운트를 한 후 즉시 마운트 해제하고 다시 마운트하면 데이터 사용량을 최소화할 수 있습니다.