🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
专栏名称 | 专栏介绍 |
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 | |
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! | |
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 | |
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 | |
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 | |
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
1. 检查宿主机可用内存
查看系统内存使用情况
free -h
- 关键指标:
Available
(可用内存)需大于容器所需内存。Swap
(交换分区)是否启用,可临时缓解内存不足问题。
检查进程内存占用
top # 按内存排序(Shift + M)
2. 调整Docker内存限制
降低容器内存限制
如果容器启动时指定了内存限制(-m
),尝试减少限制值:
docker run -it --memory=512m your_image # 将内存限制设为512MB
完全禁用内存限制(仅限测试环境)
docker run -it --memory-swap=-1 your_image # 不限制内存和Swap
3. 增加Swap交换空间
创建Swap文件(以增加4GB为例)
sudo fallocate -l 4G /swapfile # 创建4G文件
sudo chmod 600 /swapfile # 设置权限
sudo mkswap /swapfile # 格式化为Swap
sudo swapon /swapfile # 启用Swap
永久生效(可选)
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
4. 检查内核日志
查看内存分配失败的具体原因:
dmesg | grep -i "out of memory"
dmesg | grep -i "oom-killer"
5. 优化容器内存使用
限制容器内应用内存
如果容器内应用(如Java)默认占用过高内存,需调整应用配置:
# 例如Java应用设置堆内存
docker run -e JAVA_OPTS="-Xmx256m" your_image
使用轻量级基础镜像
避免使用臃肿镜像(如包含GUI工具链的镜像),改用Alpine等精简镜像:
FROM alpine:latest
6. 重启Docker服务及宿主机
释放被占用的内核资源:
sudo systemctl restart docker # 重启Docker服务
sudo reboot # 重启宿主机(最终手段)
7. 验证Linux内核参数
调整内存分配策略(临时)
# 允许内核超量分配内存(风险:可能触发OOM Killer)
sudo sysctl vm.overcommit_memory=1
- 参数说明:
0
(默认):保守分配策略,严格计算剩余内存。1
:总是允许分配,忽略内存检查。2
:基于Swap和内存的超量分配。
永久生效(谨慎操作)
echo 'vm.overcommit_memory=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
8. 其他可能原因
检查cgroups配置
cat /proc/cgroups # 查看cgroups子系统状态
更新Docker版本
sudo apt update && sudo apt upgrade docker-ce
总结
步骤 | 操作 |
---|---|
1. 检查内存资源 | free -h 、top 确认可用内存是否充足 |
2. 调整容器内存限制 | 降低 -m 参数值或禁用限制 |
3. 增加Swap空间 | 创建Swap文件并激活 |
4. 优化应用配置 | 限制应用堆内存,使用轻量镜像 |
5. 调整内核参数 | 修改 vm.overcommit_memory 允许超量分配 |
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙