我有一个java应用程序,它运行在Linux服务器上,物理内存(RAM)分配为12 of,在这里我可以看到在一段时间内的正常使用情况,如下所示。
sys> free -h
total used free shared buff/cache available
Mem: 11G 7.8G 1.6G 9.0M 2.2G 3.5G
Swap: 0B 0B 0B最近,在增加应用程序的负载时,我可以看到RAM的利用率几乎是满的,可用的空间非常少,我可能会遇到一些缓慢,但应用程序仍然很好地工作。
sys> free -h
total used free shared buff/cache available
Mem: 11G 11G 134M 17M 411M 240M
Swap: 0B 0B 0B
sys> free -h
total used free shared buff/cache available
Mem: 11G 11G 145M 25M 373M 204M
Swap: 0B 0B 0B我提到了https://www.linuxatemyram.com/,它在这里提出了以下要点。
您可能需要查看的真正低内存状况的警告信号:
从以上几点来看,我在应用程序级别没有看到任何OOM问题,交换也被禁用了。所以忽略了这两点。困扰我的一点是可用内存不足零,我需要澄清。
发布于 2021-09-28 12:14:49
能够回答我的一个问题
如果可用的接近于0,它是否会以系统崩溃告终?
在我的一台服务器上进行测试时,我将内存加载到几乎满的内存中,如下所示
sys> free -h
total used free shared buff/cache available
Mem: 11G 11G 135M 25M 187M 45M
Swap: 0B 0B 0B能够单独看到我的应用程序(它消耗了更多的内存)就被内存不足的杀手杀死了,它可以在内核日志中引用。
[355623.918401] [21805] 553000 21805 69 21 2 0 0 rm
[355623.921381] Out of memory: Kill process 11465 (java) score 205 or sacrifice child
[355623.925379] Killed process 11465 (java), UID 553000, total-vm:6372028kB, anon-rss:2485580kB, file-rss:0kB, shmem-rss:0kBhttps://www.kernel.org/doc/gorman/html/understand/understand016.html
内存不足杀手或OOM Killer是linux内核在系统内存严重不足时使用的一个进程。出现这种情况是因为linux内核为其进程分配了过多的内存。..。这意味着正在运行的进程需要比物理可用的内存更多的内存。
https://serverfault.com/questions/1078743
复制相似问题