【Docker】 ubuntu18.04编译时内存不足需要使用临时交换分区解决“c++: internal compiler error“错误

【Docker】 ubuntu18.04编译时内存不足需要使用临时交换分区解决"c++: internal compiler error"错误

问题描述

安装独立功能包时编译不成功,出现 “c++: internal compiler error: Killed(program cciplus)” 错误。


解决方案

出现这个问题的原因大概率是因为编译时内存不足,可以使用临时交换分区来解决。正常的ubuntu18.04是可以按照以下步骤执行命令使用临时交换分区来解决问题,但是docker的ubuntu18.04容器会出现下图中的错误。

# 创建一个大小为 3GB 的交换文件 /home/3Gswapfile ,根据需要调整 bs 和 count 参数来创建不同大小的交换文件
sudo dd if=/dev/zero of=/home/3Gswapfile bs=1M count=512
sudo chmod 600 /home/3Gswapfile
# mkswap 命令将指定的文件 /home/3Gswapfile 标记为交换分区,并设置相应的文件系统标识
sudo mkswap /home/3Gswapfile
# swapon 命令将指定的文件 /home/3Gswapfile 作为交换空间启用,并将其添加到系统的交换空间列表中
sudo swapon /home/3Gswapfile
# 重新进行编译
# xxxxx编译命令
# swapoff 命令将指定的交换空间文件或设备从系统中移除,并停止使用它作为虚拟内存的一部分
sudo swapoff /home/3Gswapfile
# 删除 /swapfile 交换分区
sudo rm /home/3Gswapfile

因为 Docker 默认情况下不允许容器内的进程启用交换空间。

要在在 Docker 容器中以特权模式(privileged mode)运行,但是即使以特权模式下运行也会出现新的错误,因此博主在容器启动时就直接设置交换空间大小。

容器一旦启动,很多设置都改不了了,因此需要先将docker容器制作成镜像,然后再重新创建容器并作相应设置。

# 查找当前容器的ID或名称
docker ps
# 将容器制作成镜像
docker commit container_name image_name:tag
# eg: docker commit GCNv2_SLAM gcnv2_slam:1.0
# 查看制作好的镜像
docker images
# 删除旧版容器
docker stop container_name
docker rm container_name
# cg: docker stop GCNv2_SLAM
# 	  docker rm GCNv2_SLAM
# 启动gpu版本镜像,设置了特权模式,内存大小和交换区大小(设置必须内存大小>=交换区)
docker run -it --privileged=true --memory=4g --memory-swap=4g --shm-size 8g --gpus all --name container_name -p 5900:5900 -p 22:22 -d image_name:tag
# eg: docker run -it --privileged=true --memory=30g --memory-swap=60g --shm-size 8g --gpus all --name GCNv2_SLAM -p 5900:5900 -p 22:22 -d gcnv2_slam:1.0
# 显示容器的内存大小、交换分区大小信息
docker container inspect <container_id> --format "table {{.HostConfig.Memory}}\t{{.HostConfig.MemorySwap}}"
# eg: docker container inspect fcd4630822ac --format "table {{.HostConfig.Memory}}\t{{.HostConfig.MemorySwap}}"

容器的内存30g,交换分区60g。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/542380.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣题目训练(21)

2024年2月14日力扣题目训练 2024年2月14日力扣题目训练605. 种花问题617. 合并二叉树628. 三个数的最大乘积289. 生命游戏299. 猜数字游戏149. 直线上最多的点数 2024年2月14日力扣题目训练 2024年2月14日第二十一天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;…

Docker安装蜜罐Hfish

前言 无意中发现公司的一台服务器被爆破&#xff0c;修改了密码&#xff0c;为了确定内网是否安装需要搭建一个蜜罐来看一下是否存在隐患。 如何安装Docker&#xff0c;请查看我另一篇文章 https://blog.csdn.net/l1677516854/article/details/136751211 一、拉取镜像 dock…

dockers拉取MySQL及Redis并挂载文件

目录 一 . MySQL拉取 1、进入 MySQL 容器内部。 2、登录 MySQL。 3、修改远程连接 4、刷新 二 . Redis拉取 1 . redis/conf中新建文件redis.conf&#xff0c;内容如下&#xff1a; 2 . 容器运行 一 . MySQL拉取 docker run -d --restartalways --name mysql \ -v /…

HTML、XHTML和HTML5系列对比

目录 HTML HTML的优点&#xff1a; HTML的缺点&#xff1a; 应用场景&#xff1a; XHTML XHTML的优点&#xff1a; XHTML的缺点&#xff1a; 应用场景&#xff1a; HTML5 HTML5的优点&#xff1a; HTML5的缺点&#xff1a; 应用场景&#xff1a; 回首发现&#xff0…

算法刷题Day11 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

目录 0 引言1 有效的括号1.1 我的解题 2 删除字符串中的所有相邻重复项2.1 我的解题 3 逆波兰表达式求值3.1 我的解题 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;算法专栏&#x1f4a5; 标题&#xff1a;❣️ 寄语&#xff1a;书到用时方恨少…

Spring中使用内置的tomcat容器启动后自动退出问题解决方法

在Spring中使用内置的tomcat 启动后自动退出 退出代码为0 且不报任务错误的解决方法. 日志如下: Connected to the target VM, address: 127.0.0.1:51129, transport: socket 三月 15, 2024 11:55:00 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing Proto…

Linux下安装多个nodejs并映射Jenkins

背景 需要Jenkins中切换多个Node&#xff0c;比如nodejs16和nodesjs18,所以在宿主机按照好这两个版本&#xff0c;然后再映射到Jenkins容器中 步骤 1.下载地址 https://nodejs.org/dist/ 放到 cd /opt/soft/2.解压 tar -xzvf node-v16.20.0-linux-x64.tar.gz tar -xzvf n…

【IC设计】Verilog线性序列机点灯案例(一)(小梅哥课程)

文章目录 设计目标思路仿真结果时间点一&#xff1a;201ns时间点二&#xff1a;220ns时间点三&#xff1a;250,000,220ns时间点四&#xff1a;1,000,000,200ns时间点五&#xff1a;1,000,000,220ns 总结&#xff1a; 案例和代码来自小梅哥课程&#xff0c;本人仅对知识点做做笔…

【ansible】ansible的介绍和安装

前言运维自动化 云计算核心职能 搭建平台架构 日常运营保障 性能效率优化 相关工具 代码管理&#xff08;SCM&#xff09;&#xff1a;GitHub、GitLab、BitBucket、SubVersion 构建工具&#xff1a;maven、Ant、Gradle 自动部署&#xff1a;Capistrano、CodeDeploy 持续…

代码+视频,R语言使用BOOT重抽样获取cox回归方程C-index(C指数)可信区间

bootstrap自采样目前广泛应用与统计学中&#xff0c;其原理很简单就是通过自身原始数据抽取一定量的样本&#xff08;也就是取子集&#xff09;&#xff0c;通过对抽取的样本进行统计学分析&#xff0c;然后继续重新抽取样本进行分析&#xff0c;不断的重复这一过程N&#xff0…

针对BSV区块链新推出的网络访问规则NAR和警报系统AS的解释与问答

​​发表时间&#xff1a;2024年2月22日 BSV区块链社区团队最近开设了一个Twitter&#xff08;X&#xff09;话题空间&#xff0c;讨论BSV区块链协会最新推出的网络访问规则和警报系统的相关问题。 本次讨论由BSV区块链社区负责人Brett Banfe主持&#xff0c;以便社区成员更好…

【PTA】L1-039 古风排版(C++)

题目链接&#xff1a;L1-039 古风排版 - 团体程序设计天梯赛-练习集 (pintia.cn) 目录&#xff1a; 目录&#xff1a; 题目要求&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 思路&#xff1a; 代码&#xff1a; 测试结…