CentOS中Golang打包的资源消耗控制
一 系统层面控制
二 构建流程与编译参数优化
三 内存不足时的应急与根治
四 Docker与CI中的资源控制
五 常用命令速查表
| 目标 | 操作 | 示例 |
|---|---|---|
| 并行编译 | 设置并行包数 | go build -p $(nproc) |
| 减小体积 | 去除符号与调试 | go build -ldflags “-s -w” -o app |
| 静态链接 | 无 C 依赖时静态构建 | CGO_ENABLED=0 GOOS=linux go build -o app |
| 压缩二进制 | 使用 UPX 高压缩 | upx --best app |
| 交叉编译 | 在本地为 Linux 打包 | GOOS=linux GOARCH=amd64 go build -o app |
| 交换空间 | 临时启用 1GB 交换 | fallocate -l 1G /swapfile && mkswap /swapfile && swapon /swapfile |
| 资源限制 | 容器内存上限 | docker run --memory=512m app |