【问题标题】:Memory full issue AWS server内存已满问题 AWS 服务器
【发布时间】:2021-07-07 12:14:06
【问题描述】:

我已将我的应用程序托管在具有 16 GiB Ram 和 8 GB 存储空间的 aws ec2 实例上。我曾经为她保存日志,有时会收到“内存已满问题”。那么任何人都可以建议我如何增加存储空间以及它将花费多少。

【问题讨论】:

  • 这个网站是用于编程问题,所以你的问题在这里是题外话,因为它是不相关的。然而,AWS 提供了一个简单的定价计算器,您可以在其中选择特性或您的实例,包括区域、操作系统、实例类型和存储,并估算运行成本。 calculator.s3.amazonaws.com/index.html
  • 能否请您提供确切错误消息以及您在何处/如何收到该消息?

标签: amazon-ec2 out-of-memory


【解决方案1】:

在增加实例存储和升级之前尝试以下操作 实例类型。

每天清除临时文件和应用程序日志。

执行以下命令打开crontab,

crontab -e

在 cron 选项卡中输入以下行。

0 1 * * * sudo find /tmp -type f -atime +10 -delete

在 cron 作业中使用上述命令清除 10 天之前访问的所有应用程序临时文件,该命令将在每天凌晨 1 点执行。

还可以通过 cronjob 删除较旧的日志文件。

如果您使用 AWS 作为基础设施,那么建议您使用日志代理将日志上传到 cloudwatch。

请参阅以下链接以获取日志代理的快速入门。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

如果您使用 Cloudwatch,那么您所有的应用程序日志都会流式传输到 S3,您甚至不需要 10 天的实例日志。

【讨论】:

    【解决方案2】:

    EC2 实例的类别是什么?您可以使用 Cloud Watch 监控您的实例性能,然后您可以决定(基于 Cpu 和内存使用情况)您必须迁移到哪个新实例。对于成本估算,您可以使用@wayne Phipps 提供的链接

    【讨论】:

      【解决方案3】:

      如果您有内存问题,为什么要尝试更多存储空间?

      您使用的是哪类 ec2?

      如果想要增加音量和增加内存,您可以将 EBS 附加到 ec2,如果使用 t2.micro 可以更改 ec2 的类。

      自动缩放也可以是一个选项或迁移到另一个具有更多空间和内存的 ec2。

      【讨论】:

        【解决方案4】:

        如果您正在使用 docker 镜像或使用 Jenkins 的容器,那么也许您可以使用此命令来清理不需要的 docker 镜像占用的空间。

        sudo docker rmi $(sudo docker images -f "dangling=true" -q)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-13
          相关资源
          最近更新 更多