共享内存使用量不断增加

共享内存使用量不断增加

我正在使用带有内核 5.4.0-70-generic 的 Ubuntu 20.04.2 LTS。共享内存不断堆积,直到系统因没有剩余内存而挂起。

我正在使用 Prometheus + Grafana 来监控我的系统资源,从他们的图表中可以看出,从重新启动到共享内存达到 20 GB 大约需要 4-7 天。但它并没有就此停止,它会继续增长,直到我再次重新启动。 Screenshot from Grafana

free -h从命令 中可以看到相同数量的共享内存使用情况。Screenshot of free -h

tmpfs的使用率似乎很低: Screenshot of df -h | grep tmpfs

即使我关闭所有应用程序并且不使用计算机,共享内存也会不断增长。造成这种行为的原因是什么?我怎样才能开始调查这个问题?我如何找出哪些进程使用了​​那么多共享内存?

$ 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显示为占用共享内存。

相关内容