저는 커널 5.4.0-70-generic과 함께 Ubuntu 20.04.2 LTS를 사용하고 있습니다. 공유 메모리는 남은 메모리가 없어 시스템이 중단될 때까지 계속 쌓입니다.
저는 Prometheus + Grafana를 사용하여 시스템 리소스를 모니터링하고 있는데 그래프에서 볼 수 있듯이 재부팅 후 공유 메모리가 20GB에 도달할 때까지 약 4~7일이 소요됩니다. 하지만 거기서 멈추지 않고 다시 재부팅할 때까지 계속해서 증가합니다.
free -h
명령에서 동일한 양의 공유 메모리 사용량을 볼 수 있습니다.
모든 응용 프로그램을 닫고 컴퓨터를 사용하지 않아도 공유 메모리가 계속 증가합니다. 이 행동의 이유는 무엇입니까? 이 문제에 대한 조사를 시작하려면 어떻게 해야 합니까? 어떤 프로세스가 너무 많은 공유 메모리를 사용하고 있는지 어떻게 알 수 있나요?
$ ipcs -m --human
------ Shared Memory Segments --------
key shmid owner perms size nattch status
0x00000000 3145729 martsraits 600 256M 2 dest
0x00000000 2588677 martsraits 600 512K 2 dest
0x00000000 1245191 martsraits 600 512K 2 dest
0x00000000 5832713 martsraits 600 512K 2 dest
0x00000000 10 martsraits 600 512K 2 dest
0x00000000 1212427 martsraits 600 512K 2 dest
0x00000000 12 martsraits 600 512K 2 dest
0x00000000 1212429 martsraits 600 64M 2 dest
0x00000000 32785 martsraits 600 512K 2 dest
0x00000000 2064402 martsraits 600 512K 2 dest
0x00000000 5537814 martsraits 600 512K 2 dest
0x00000000 1114138 martsraits 600 512K 2 dest
0x00000000 8945695 martsraits 600 23,3K 2 dest
0x00000000 1507360 martsraits 600 512K 2 dest
0x00000000 2916388 martsraits 600 512K 2 dest
0x00000000 4816933 martsraits 606 8,2M 2 dest
0x00000000 4816934 martsraits 606 8,2M 2 dest
0x00000000 4816935 martsraits 600 128M 2 dest
0x00000000 3670057 martsraits 600 512K 2 dest
0x00000000 3309611 martsraits 600 512K 2 dest
0x00000000 1441844 martsraits 600 512K 2 dest
0x00000000 2555960 martsraits 600 8M 2 dest
0x00000000 917564 martsraits 600 512K 2 dest
0x00000000 3899453 martsraits 600 512K 2 dest
의 크기 열의 합은 ipcs -m
500M에 불과합니다.
답변1
방금 임베디드 시스템에서 이 문제가 발생했는데 문제는 tmpfs
특히 로그가 거기에 저장되어 있고(변경해야 함) 너무 많은 메모리를 차지한다는 것입니다. 예, 출력에서 free
공유 메모리를 차지하는 것으로 나타납니다 .