【问题标题】:EC2, out of memory crashEC2,内存不足崩溃
【发布时间】: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

  1. 我可以考虑将elasticsearch 分离到它自己的服务器..(可能还有多个ES 节点,这意味着elasticsearch 服务有多个EC2)

  2. 我可以上t3-xlarge

  3. 我可以切换到更多专注于内存的实例吗? R5 类型实例?

还有其他选择吗?
我有一种预感,#1 可能是最推荐的思维方式。我说的对吗?

【问题讨论】:

  • recommended 在生产环境中运行 elasticsearch 作为服务器中的唯一服务,所以我会尝试第一个选项,但其他问题可能导致 OOM 崩溃,例如分片数量及其尺寸。

标签: amazon-web-services elasticsearch amazon-ec2


【解决方案1】:

如果它是一个生产系统,或者如果你正在尝试构建一个,你绝对应该在一个集群中运行它,其中 ES 的不同节点具有不同的角色(数据记录、主节点、负载均衡器)等。

您还应该注意要推送、检索、索引的数据量,并相应地选择您的 AWS 硬件和内存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2018-07-28
    相关资源
    最近更新 更多