make 出现 OOM???

在云服务器上编译项目遇到内存不足导致编译失败的问题,通过开启并配置交换分区(swap)成功解决了编译过程中的OOM错误,确保了项目能够顺利编译完成。
部署运行你感兴趣的模型镜像

心情烦躁,随便翻翻博客,好久没更新了,来写篇水博,冷静一下。

这周编译一个项目的时候,出现 error,如下:
在这里插入图片描述
看到 cc1plus 被 killed 了,第一反应是不是因为 OOM killed 掉了,本来云服务器就只有 1G 内存。

dmesg 看一下吧,果然:
在这里插入图片描述
那怎么办,使用 swap 吧,需要开启一下,默认是关闭的。
使用交换文件来做交换分区。

// 先创建交换文件
fallocate -l 4G /swapfile
// or 
dd if=/dev/zero of=/swapfile bs=1M count=4096
// 修改权限
chmod 600 /swapfile
// 格式化文件
mkswap /swapfile
//激活
swapon /swapfile
// 有需要的也可以设开机自启动
// 打开 /etc/fstab,加上
vim /etc/fstab
/swapfile    none    swap    defaults     0 0

在这里插入图片描述

继续 make,这次可以了,溜了溜了。

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

<think>嗯,用户再次确认是否一定要用Docker在香橙派Zero3上搭MC服务器,看来对容器化方案仍有顾虑。结合之前详细说明的Docker方案,用户可能更关心替代方案的可行性和操作复杂度。 用户提供的站内引用提到多种Docker应用案例[^1][^2][^3][^4],但实际需求是MC服务器部署。需要明确:Docker不是必须的,但确实是香橙派这种低配设备的最优解。考虑到Zero3仅有1GB内存,原生部署会遇到更多依赖冲突和资源管理问题。 非Docker方案的核心痛点在于:1) 手动安装Java环境可能版本混乱 2) 基岩版服务端需自行处理依赖库 3) 缺乏进程隔离容易导致系统崩溃。特别是当用户想同时运行其他服务时(如引用中提到的CodeServer[^1]或1Panel[^2]),Docker的资源隔离优势会更明显。 不过对于坚持原生部署的用户,需要强调两个关键点:第一,必须严格限制JVM内存参数防止OOM,建议-Xmx512m;第二,基岩版需解决libcurl兼容性问题,可能需手动编译。这些在之前的Docker方案中都是自动处理的。 用户身份可能是个人技术爱好者,设备性能认知清晰——前次提问时已接受"轻量级"的设定。深层需求应该是寻求最低维护成本的方案,因此仍会推荐Docker作为首选,但可以补充原生部署的致命缺陷供其权衡。 相关延伸问题自然聚焦在性能调优和插件管理,这两点无论采用哪种部署方式都是刚需。特别要注意的是,当用户提到"模组"时需区分Java版的Forge/Fabric和基岩版的Add-Ons,避免混淆解决方案。 </think>在香橙派 Zero3 上搭建 Minecraft(MC)服务器 **并非必须使用 Docker**,但 Docker 是最推荐的方式。以下是具体分析和替代方案: --- ### **一、为什么 Docker 是首选方案?** 1. **简化依赖管理** MC 服务端(尤其是基岩版)依赖特定库(如 `libcurl`),而香橙派的 ARM 架构可能需手动编译依赖。Docker 镜像已包含所有依赖[^1],开箱即用。 ```bash # Docker 一键部署(基岩版) docker run -d -p 19132:19132/udp -e EULA=TRUE itzg/minecraft-bedrock-server ``` 2. **资源隔离与稳定性** Zero3 仅 1GB 内存,原生部署时: - Java 版易因内存溢出崩溃(需手动调优 JVM 参数) - Docker 可通过 `-e MEMORY=768M` 限制内存[^2],避免拖垮系统。 3. **维护便捷性** - 升级:`docker-compose pull` → 重启容器 - 备份:直接复制 `./data` 目录 - 日志:`docker logs -f mc-server` --- ### **二、非 Docker 方案(原生部署)** #### **基岩版服务端(Bedrock)** 1. **手动下载官方服务端** ```bash wget https://minecraft.azureedge.net/bin-linux/bedrock-server-X.X.X.X.zip unzip bedrock-server-X.X.X.X.zip && cd bedrock-server ``` 2. **解决依赖问题** 若缺 `libcurl`,需手动编译: ```bash sudo apt install build-essential wget https://curl.se/download/curl-X.X.X.tar.gz tar -xvf curl-X.X.X.tar.gz && cd curl-X.X.X ./configure --prefix=/usr/local && make && sudo make install ``` 3. **启动服务器** ```bash LD_LIBRARY_PATH=. ./bedrock_server ``` > ⚠️ 需手动管理内存、端口、崩溃重启(如用 `systemd`)。 --- #### **Java 版服务端** 1. **安装 Java 环境** ```bash sudo apt install openjdk-17-jdk # 推荐 JDK 17 ``` 2. **下载服务端核心(如 PaperMC)** ```bash wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/100/downloads/paper-1.20.4-100.jar ``` 3. **手动配置与启动** ```bash java -Xmx512M -Xms256M -jar paper-1.20.4-100.jar nogui ``` - 必须调优 JVM 参数(如 `-XX:+UseZGC` 减少内存占用) - 需自行处理崩溃重启(如用 `screen` 或 `systemd`) --- ### **三、方案对比** | **维度** | **Docker 方案** | **原生方案** | |------------------|-------------------------------------|----------------------------------| | 部署复杂度 | ⭐⭐ 一键启动 | ⭐⭐⭐⭐ 需解决依赖、编译 | | 内存管理 | ⭐⭐⭐ 通过环境变量限制 | ⭐⭐ 需手动调优 JVM | | 系统隔离性 | ⭐⭐⭐ 容器隔离 | ⭐ 可能影响其他服务 | | 升级/回滚 | ⭐⭐⭐ 替换镜像即可 | ⭐⭐ 需手动替换文件 | | 适合人群 | 新手/追求效率者 | 熟悉 Linux 及 MC 服务端配置者 | --- ### **四、结论建议** 1. **优先选 Docker** 尤其适合基岩版,参考[^1][^2]的 CasaOS+Docker 实践,省去 90% 配置时间。 2. **仅当以下情况选原生部署** - 需深度定制服务端核心(如修改源码) - 设备内存极度紧张(Docker 有 ~50MB 开销) - 学习目的(理解底层原理) > 💡 **终极提示**:无论选哪种方案,务必: > - 限制内存(Java 版 `-Xmx512M`,基岩版 Docker 设 `MEMORY=768M`) > - 使用 `tmpfs` 减少 TF 卡磨损[^2] > - 通过 `cpolar` 实现内网穿透远程访问[^1][^3] --- ### **相关问题** 1. 如何优化香橙派 Zero3 上 MC 服务器的内存占用和 TPS? 2. 使用 Docker 部署 MC 服务器时,如何添加 Forge/Fabric 模组? 3. 原生部署 Java 版 MC 服务器时,有哪些必须的 JVM 调优参数? [^1]: Docker 部署 Code Server 的实践表明容器化能显著简化 ARM 设备服务部署 [^2]: CasaOS 结合 Docker 的方案已验证对香橙派 Zero3 的资源管理优势 [^3]: cpolar 内网穿透实现远程访问的方案可直接迁移到 MC 服务器管理 [^4]: Talebook 的部署案例说明原生应用需处理依赖问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值