안녕하세요.
Ubuntu 사용중인데 메모리가 부족해서.. 자꾸만 문제가 생깁니다.
drop cache 를 해도 Cached 가 10GB 넘게 차있는게 없어지질 않네요..
shm 도 용량이 크지 않습니다.. 어떻게 해야 할까요?
---
확인해 본 것
# free -m
total used free shared buff/cache available
Mem: 63893 39230 11534 8511 13127 15452
스왑: 1951 1708 243
/proc/meminfo:
MemTotal: 65426568 kB
MemFree: 11871044 kB
MemAvailable: 15906032 kB
Buffers: 277092 kB
Cached: 12402716 kB
SwapCached: 100448 kB
Active: 21555672 kB
Inactive: 26908344 kB
Active(anon): 20445476 kB
Inactive(anon): 24043484 kB
Active(file): 1110196 kB
Inactive(file): 2864860 kB
Unevictable: 532 kB
Mlocked: 532 kB
SwapTotal: 1998844 kB
SwapFree: 249720 kB
Dirty: 5076 kB
Writeback: 0 kB
AnonPages: 35685868 kB
Mapped: 9988648 kB
Shmem: 8717524 kB
KReclaimable: 787748 kB
Slab: 1663736 kB
SReclaimable: 787748 kB
SUnreclaim: 875988 kB
KernelStack: 143936 kB
PageTables: 269344 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 34712128 kB
Committed_AS: 77493372 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 563700 kB
VmallocChunk: 0 kB
Percpu: 57856 kB
HardwareCorrupted: 0 kB
AnonHugePages: 376832 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 22807724 kB
DirectMap2M: 41988096 kB
DirectMap1G: 2097152 kB
# df -h -t tmpfs
tmpfs 32G 272M 31G 1% /dev/shm
---
시도해 본 것:
sync
echo 3 > /proc/sys/vm/drop_caches
echo 10 > /proc/sys/vm/swappiness
모두 변화가 없습니다..ㅠㅠ
위 상황은 프로세스들을 죽여서 좀 남게 된건데, 작업하다보면 메모리가 부족해서 저 캐시를 어떻게 할 수 없을까 하고 있습니다.
IntelliJ, WebStorm, GoLand, Windows VM, k3s 켜놓고 개발하고 있습니다.
메인보드 모델명은 기억안나지만 확인했을 때 최대 64GB 라 더이상 추가는 어렵네요ㅠㅠ
우선 그보다 프로그램을 최대한 튜닝시키는 것에 전념하시는 것이 나아 보입니다..
메모리가 어디선가 반환이 안되는 것일수도 있고,
프로그램이 종료되지 않고 좀비로 계속 남아 있는 것일지도 모르죠.
어디선가 메모리 반환을 안하는거 같은데 찾기가 어렵네요..
비어있는 메모리를 최대한 디스크 캐시로 쓸려고 합니다.
프로그램이 메모리 요구하면 그때 캐시로 쓰는거 빼서 프로그램에 넘기죠.
Cached 도 어느 파일시스템이 쓰고 있다라는걸 알 수 있음 좋을텐데..ㅠㅠ
어.. 근데 생각해보니.. lxd 에서 zfs 를 쓰는데 arc 때문일수도 있을거 같네요.. 내일 가면 확인해봐야겠습니다.
테라 단위 메모리 리눅스 시스템도 필요하면 다 캐시로 갖다 씁니다.
말씀으로 봐서는 님의 마음이 불안한 심적 장애 말고는 문제가 없어 보이는데요, 메모리 부족으로 시스템에 실제로 오류가 발생해야 문제가 있다고 보시면 됩니다.
문제가 발생한다는 것은 마우스가 끊길 정도로 느려지는 상황인데.. 이러한 상황에서 top 을 보면
free 메모리가 극히 작고, Cached 는 그대로 10GB 넘게 잡고 있습니다.
이 상황에서 프로세스를 죽여서 메모리를 확보하면 정상으로 돌아오구요. (그래도 cached 는 그대로..)
처음에 문제 상황을 정확히 적으셨으면 여러 사람 불필요한 말들 안했을텐데요...
파일 읽기에 비해 쓰기가 매우 많은 것 같습니다.
그런 상황에서는 어쩔 수 없을 것 같습니다.
캐스가 원래 한 번 읽은 걸 재활용하자고 만든 건데, 쓰기가 더 많다면 마땅한 답이 없습니다.
돈들여서 더 빠른 디스크를 사는 것만이 답입니다.
VFS Cache가 사용할 가능성이 높아보입니다