Linux - 디스크를 RAM으로 사용

Linux - 디스크를 RAM으로 사용

VM이 있고 그 안에 많은 메모리(~200GB)를 소비하는 프로세스가 있습니다. 일종의 메모리 내 DB입니다. 표준 노트북에서 실행해야 하는데 다시 컴파일하거나 코드를 볼 수 없습니다.

/etc/fstab에 pri=32767, /etc/sysctl.conf에 vm.swappiness=100으로 256GB의 스왑 공간을 추가했지만 DB를 충분히 빠르게 로드하지 못합니다(24시간 후에 4GB에 멈췄습니다. 그렇지 않음). 더 이상 성장하지 않는 것 같습니다.)

(편집: 머신을 복제하고 RAM을 256GB에서 4GB로 변경하고 하드 디스크를 추가하고 ext4로 포맷하고 256GB 크기의 스왑 파일을 생성했습니다(dd -> mkswap -> swapon...))

왜 성장이 멈췄나요?

스왑 공간으로 인해 속도가 느려지는 것으로 의심되므로 OS는 "스왑" 중입니다(로드 -> 공간 부족 -> 무엇을 스왑할지 결정...).

"메모리를 더 추가"하는 방법을 찾고 있지만 OS가 이를 일반 메모리로 처리하도록 합니다. 아니면 내 스왑 구성이 잘못되었을 수도 있나요?

성능이 저하될 것이라는 것을 알고 있지만 제게는 허용됩니다.

VM은 CentOS 6입니다.

답변1

여러 스왑 파일을 사용해 보셨나요? 4기가는 32비트 시스템의 파일 크기 제한에 도달한 것처럼 들립니다.

이 튜토리얼을 찾았습니다.centos.org스왑 파일을 수동으로 만드는 방법을 꽤 깔끔하게 정리했습니다.

스왑 파일을 추가하려면:

  1. 새 스왑 파일의 크기를 메가바이트 단위로 결정하고 1024를 곱하여 블록 수를 결정합니다. 예를 들어, 64MB 스왑 파일의 블록 크기는 65536입니다.
  2. 루트로 쉘 프롬프트에서 개수를 원하는 블록 크기와 동일하게 지정하여 다음 명령을 입력하십시오.

dd if=/dev/zero of=/swapfile bs=1024 count=65536

  1. 다음 명령을 사용하여 스왑 파일을 설정하십시오.

mkswap /swapfile

  1. 스왑 파일을 즉시 활성화하지만 부팅 시 자동으로 활성화하지 않으려면 다음을 수행하십시오.

swapon /swapfile

  1. 부팅 시 활성화하려면 /etc/fstab을 편집하여 다음 항목을 포함하십시오:

/swapfile swap swap defaults 0 0

다음에 시스템이 부팅되면 새 스왑 파일이 활성화됩니다.

새 스왑 파일을 추가하고 활성화한 후 명령 cat /proc/swaps또는 의 출력을 확인하여 활성화되었는지 확인합니다 free.

답변2

나는 결국 데이터를 SQLite 데이터베이스로 변환하고 다음과 같이 썼습니다.https://github.com/assafmo/SQLiteQueryServer원격으로 접속할 수 있도록 말이죠. 완벽하게 작동했고 매우 빨랐습니다.

관련 정보