【发布时间】:2022-01-12 13:40:50
【问题描述】:
我无法通过 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 节点,这意味着elasticsearch服务有多个EC2) -
我可以上
t3-xlarge -
我可以切换到更多专注于内存的实例吗?
R5类型实例?
还有其他选择吗?
我有一种预感,#1 可能是最推荐的思维方式。我说的对吗?
【问题讨论】:
-
recommended 在生产环境中运行 elasticsearch 作为服务器中的唯一服务,所以我会尝试第一个选项,但其他问题可能导致 OOM 崩溃,例如分片数量及其尺寸。
标签: amazon-web-services elasticsearch amazon-ec2