当前位置: 首页 > 知识库问答 >
问题:

容器内存保持增长,而应用程序和顶级报表内存稳定

丁和歌
2023-03-14

我在AWS ECS上的docker容器中运行了一个nodejs应用程序。随着通信量的增加,报告的内存像内存泄漏一样不断增长。交通越多,增长越快。但是,在检查了实例中的top和free-m的内存后,内存(rss)是稳定的,远低于docker的统计值。

在bash中的实例中,这里有来自cgroup的内存:rss+cache+swap非常接近top的内存,也非常接近nodejs中os.memoryusage().rss的内存,但是离memory.usage_in_bytes太远了。这怎么可能?

root@ip-10-1-10-197:/app# cat /sys/fs/cgroup/memory/memory.kmem.usage_in_bytes 
192913408
root@ip-10-1-10-197:/app# cat /sys/fs/cgroup/memory/memory.usage_in_bytes 
280588288
root@ip-10-1-10-197:/app# cat /sys/fs/cgroup/memory/memory.stat           
cache 8192
rss 86421504
rss_huge 0
shmem 0
mapped_file 0
dirty 0
writeback 0
swap 0
pgpgin 199618711
pgpgout 199597610
pgfault 358572897
pgmajfault 0
inactive_anon 0
active_anon 86396928
inactive_file 4096
active_file 4096
unevictable 0
hierarchical_memory_limit 536870912
hierarchical_memsw_limit 9223372036854771712
total_cache 8192
total_rss 86421504
total_rss_huge 0
total_shmem 0
total_mapped_file 0
total_dirty 0
total_writeback 0
total_swap 0
total_pgpgin 199618711
total_pgpgout 199597610
total_pgfault 358572897
total_pgmajfault 0
total_inactive_anon 0
total_active_anon 86396928
total_inactive_file 4096
total_active_file 4096
total_unevictable 0

暂时还没有答案

 类似资料:
  • 我一直在我的应用程序中随机(内存溢出)崩溃,所以我开始分析我的堆。我注意到,如果我从活动A到活动B,堆会从27 MB增加到35 MB(由于懒惰加载许多图像)。但是,当我完成()活动B返回到活动A时,堆大小保持不变,即使使用GC操作!! 令人讨厌的是,再次进入活动B会将堆增加到42 MB。我可以这样做,因为五月的时候,堆只会不断增加。 这是我正在使用的惰性图像加载库: LazyListhttps:/

  • 我是否正确理解了客户端模式的文档? 客户端模式与驱动程序在应用程序主程序中运行的集群模式相反? 在客户端模式下,驱动程序和应用程序主程序是独立的进程,因此+必须小于计算机的内存? 在客户端模式下,驱动程序内存不包括在应用程序主内存设置中吗?

  • 保存内容 能将已登录之频道的内容(项目),保存至Memory Stick™或主机内存。若要保存,可选择下述方法进行。 (1) 只选择1个项目保存 挑选想保存的项目后,选择选项选单的[保存]。 (2) 整合保存频道内的数个项目 挑选已保存的频道后,选择选项选单的[保存]。 (3) 选择数个频道后保存项目 挑选频道后,选择选项选单的[保存]。 提示 希望选择(2)或(3)时,能保存之项目数量可能因(设

  • 我们有一个在Solaris 10上运行的java进程,为大约200-300个并发用户提供服务。管理员报告说,随着时间的推移,进程使用的内存显著增加。几天内它就达到2GB,并且从未停止增长。 我们已经转储了堆,并使用Eclipse内存探查器对其进行了分析,但没有看到任何异常。堆的大小非常小。 在添加内存统计日志记录后,我们在应用程序中发现管理员使用的“top”实用程序报告的内存使用量与MemoryM

  • 我们有一个问题,即java进程使用的内存无限增长,直到Linux最终杀死java进程。 我们的堆内存是健康稳定的。(我们已经广泛地分析了堆)我们还使用MemoryMXBean来监视应用程序的非堆内存使用情况,因为我们认为问题可能就在那里。然而,我们看到的是报告的堆大小+报告的非堆大小保持稳定。 下面是一个示例,说明了在我们的目标系统上使用1GB RAM运行应用程序时,数字可能会是什么样子(由Mem

  • 我正在centos 6上运行java应用程序,使用G1GC运行openjdk版本“1.8.0_232”。我看到堆的总使用量逐渐增加,导致应用程序崩溃。当我对活动对象进行堆转储时,转储大小仅为1.6GB,但我使用的总堆容量为32GB。 用于获取dump:jmap-dump:live、format=b、file=/tmp/dump的命令。hprof 从某个地方读到,jmap dump命令会触发一个完整