RAM 디스크를 생성하기 위해 다음 명령을 실행했습니다.
mount -t tmpfs -o size=60G tmpfs /tmp/ramdisk
그 후 다음과 같이 여러 파일을 이 가상 파일 시스템에 복사했습니다.
cp /mnt/user/hugefile.bin /tmp/ramdisk/hugefile.bin
cp /mnt/user/hugefile2.bin /tmp/ramdisk/hugefile2.bin
cp /mnt/user/hugefile3.bin /tmp/ramdisk/hugefile3.bin
그런 다음 마지막 cp
명령이 정지되고 CPU 로드가 최대치에 도달합니다. 사용 가능한 메모리보다 RAM 디스크의 크기가 더 크기 때문인 것 같습니다. Ctrl+C로 중단했습니다.
얼마 후 설치된 RAM 디스크를 다음과 같이 제거했습니다.
umount /tmp/ramdisk
하지만 이제 내 문제는 공유 메모리를 해제하지 않는다는 것입니다.
free -g
total used free shared buff/cache available
Mem: 62 0 0 53 61 7
Swap: 0 0 0
보시다시피 가상 메모리 사용량은 그리 높지 않습니다.
df -BG | grep tmpfs
tmpfs 1G 1G 1G 1% /run
devtmpfs 32G 0G 32G 0% /dev
tmpfs 32G 0G 32G 0% /dev/shm
tmpfs 1G 1G 1G 1% /var/log
tmpfs 4G 0G 4G 0% /tmp/plextranscode
내가 찾은이 팁사용량을 분석하는 데 사용되지만 ipcs
결과는 비어 있습니다.
ipcs
------ Message Queues --------
key msqid owner perms used-bytes messages
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
내가 찾은이 솔루션그것도 사실이지만, 다른 프로세스의 데이터가 죽을까 걱정됩니다. 좀 더 선택적인 해결책은 없을까요?
답변1
이 솔루션도 찾았지만 다른 프로세스의 데이터가 삭제될까봐 걱정됩니다. 좀 더 선택적인 해결책은 없을까요?
echo 3 > /proc/sys/vm/drop_caches
프로세스를 종료하거나 시스템에 손상을 입히지 않으며, 종료할 수도 없습니다. 캐시에서 모든 항목을 제거할 뿐입니다.아니요공유 메모리. ipcs
귀하의 질문과도 관련이 없습니다.
tmpfs
공유 메모리를 차지하지만 tmpfs
마운트 지점을 마운트 해제하면 공유 메모리가 자동으로 해제되어야 합니다. 왜 이런 일이 당신에게 일어나지 않았는지 모르겠습니다.
아직 설치되어 있다고 생각 /tmp/ramdisk
하지만 어떤 이유로 df
표시되지 않습니다.
reboot
당신의 문제를 해결할 것입니다.