EC2,内存不足崩溃
EC2, out of memory crash
我无法通过 ssh 连接到我的 ec2 实例,不得不重新启动。
日志显示以下消息 (journalctl -b -2 -e
)
Jan 12 02:08:03 ip-172-31-20-233 kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/docker/654b69f95e8c8fc9dde5cf1b6554dfa2ebbd6554bee760c6de410186a3bdfe3d\
,task=java,pid=27444,uid=1000
Jan 12 02:08:03 ip-172-31-20-233 kernel: Out of memory: Killed process 27444 (java) total-vm:8005004kB, anon-rss:4744424kB, file-rss:177124kB, shmem-rss:0kB, UID:1000 pgtables:10620kB oom_score_adj:0
Jan 12 02:08:03 ip-172-31-20-233 kernel: oom_reaper: reaped process 27444 (java), now anon-rss:4575556kB, file-rss:181220kB, shmem-rss:0kB
所以我猜我的系统是因为内存不足而崩溃了..
导致 oom 的进程是 elasticsearch
服务器。
我有哪些选择可以防止将来发生此类崩溃?
我在这台机器上 运行 postgresql 和 elasticsearch 用于 Web 服务。
我正在使用 t3-large
。
我可以考虑将elasticsearch
分离到它自己的服务器..(可能还有多个ES节点,这意味着多个EC2用于elasticsearch
服务)
我能上去t3-xlarge
我可以切换到更多以内存为中心的实例吗? R5
类型实例?
还有其他选择吗?
我有一种预感,#1
可能是最值得推荐的思考方式。我对吗?
如果它是一个生产系统,或者如果你正在尝试构建一个,你绝对应该 运行 它在集群中,其中 ES 的不同节点具有不同的角色(数据注释、主节点、负载平衡器)等.
您还应该注意要推送、检索、编制索引的数据量,并相应地选择您的 AWS 硬件和内存。
我无法通过 ssh 连接到我的 ec2 实例,不得不重新启动。
日志显示以下消息 (journalctl -b -2 -e
)
Jan 12 02:08:03 ip-172-31-20-233 kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/docker/654b69f95e8c8fc9dde5cf1b6554dfa2ebbd6554bee760c6de410186a3bdfe3d\
,task=java,pid=27444,uid=1000
Jan 12 02:08:03 ip-172-31-20-233 kernel: Out of memory: Killed process 27444 (java) total-vm:8005004kB, anon-rss:4744424kB, file-rss:177124kB, shmem-rss:0kB, UID:1000 pgtables:10620kB oom_score_adj:0
Jan 12 02:08:03 ip-172-31-20-233 kernel: oom_reaper: reaped process 27444 (java), now anon-rss:4575556kB, file-rss:181220kB, shmem-rss:0kB
所以我猜我的系统是因为内存不足而崩溃了..
导致 oom 的进程是 elasticsearch
服务器。
我有哪些选择可以防止将来发生此类崩溃?
我在这台机器上 运行 postgresql 和 elasticsearch 用于 Web 服务。
我正在使用 t3-large
。
我可以考虑将
elasticsearch
分离到它自己的服务器..(可能还有多个ES节点,这意味着多个EC2用于elasticsearch
服务)我能上去
t3-xlarge
我可以切换到更多以内存为中心的实例吗?
R5
类型实例?
还有其他选择吗?
我有一种预感,#1
可能是最值得推荐的思考方式。我对吗?
如果它是一个生产系统,或者如果你正在尝试构建一个,你绝对应该 运行 它在集群中,其中 ES 的不同节点具有不同的角色(数据注释、主节点、负载平衡器)等.
您还应该注意要推送、检索、编制索引的数据量,并相应地选择您的 AWS 硬件和内存。