关于阿里云ESC上go语言项目编译6l: running gcc failed: Cannot allocate memory

前段时间将自己的阿里云服务器上的系统由centos 6.5换为了ubuntu 14,其他的硬件配置都没有发生改变,将服务器上的数据恢复并且重新安装了golang的编译环境后,发现使用go build编译稍微大一点的golang项目就会报错:

/usr/local/go/pkg/tool/linux_amd64/6l: running gcc failed: Cannot allocate memory

一直想不通为啥换了个系统就会报这个错,字面意思是gcc分配内存失败,应该是内存不够用,机器配置是1G内存,free -m 发现尚有400M的内存未使用,难道剩余400M的内存还不够go build命令编译代码使用?好吧,既然如此我就给它释放内存,kill掉众多的进程之后再进行go build编译,发现又可以编译了。之后发现偶尔能编译偶尔又不能编译,看样子确实是内存不够,可是为啥之前的centos系统上没有出现这种状况呢,一直不相信简单的“内存不够”就可以解释这一问题,因为之前的centos系统上是正常的,我甚至觉得可能是gcc版本的问题,猜测只有较高版本的gcc才会报这个错误。后来也曾在“golang天朝”论坛上发过帖子,并表达自己的猜测,认为不是内存不够这么简单,结果被别人鄙视不看英文……

不想花钱升级机器硬件,难道我只有装回centos?今天执行free -m偶然间注意到了swap的数值貌似一直是空的,我思考若是我添加swap交换空间是否能解决这一问题呢,毕竟swap其实就是用硬盘空间虚拟出的内存,一个内存的缓冲区。于是就给它加了个1G的文件作为swap,居然直接就可以用go build,再也不用担心gcc对我说Cannot allocate memory了。简单的记录一下添加文件作为swap的步骤:

  • 创建1个1GB的file
  • sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1M count=1024
  • 格式化为Swap file
  • sudo mkswap /mnt/1GB.swap
  • 把swap file加入到系统中
  • sudo swapon /mnt/1GB.swap
  • 将swap永久添加
    在/ect/fstab中加入新的Swap分区
  • sudo vim /etc/fstab
  • 在最后加入下列内容
  • /mnt/1GB.swap none swap sw 0 0

最后,free -m 命令可以看到swap的数据如下

1G的内存交换区文件已经创建。

时间: 2024-08-23 22:58:00

关于阿里云ESC上go语言项目编译6l: running gcc failed: Cannot allocate memory的相关文章

阿里云服务器上部署java项目(安装mysql)

安装mysql步骤如下: 1.安装MySQL官方的yum repository: wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 2.下载rpm包: yum -y install mysql57-community-release-el7-10.noarch.rpm 3.安装MySQL服务,最后会出现个complete yum -y install mysql-community-se

如何在阿里云esc上安装wordpress

本人的个人网纱建好,但是由于新申请的域名还没有备案 所以暂时无法通过域名访问. 1.按顺序边看边跟着做基本上你能够很优雅的完成大部分设置. http://bbs.aliyun.com/read/162129.html http://bbs.aliyun.com/read/162809.html?spm=5176.bbsr162809.0.0.30Xvfy 需要注意的是: 1.见完网站后如果域名未备案则会拒绝通过域名访问,此时你可以直接公有IP加端口的方式访问. 2.如果发现在页面上出现502错误

将web项目部署到阿里云服务器上

将web项目部署到阿里云服务器(ubantu14.0.14)上的一般流程: 1.下载putty.在host name栏输入远程服务器ip地址,端口默认为22.阿里云服务器可以通过控制台查看公网ip地址,点击open进行连接 2.输入用户名和密码后进入dos界面,用apt-get update 命令更新,否则很多东西安装不了 3.安装vsftpd服务,通过命令apt-get vsftpd安装,注意 这里的ftp和之后的Tomcat.MySQL数据库端口在阿里云服务器中是默认关闭的,需要进入阿里云控

阿里云服务器上传文件失败

最近一直在学习WEB方面的内容,自己做了一个练习站,也没了个阿里云服务作为测试,过程中遇到了不少情况! 首先,由于我用的是ThinkPHP框架,遇到的第一个大麻烦便是上传的内容不能显示在界面上,提示有关于runtime的问题,同时,当我需要上传更多的文件时出现了偶尔成功但大多失败的情况,flashFXP提示553Could not create file.招了好多资料都没有看到什么好的建议或者解决办法,只是明确了问题的根本在于文件的权限.根据好心人提示修改目录权限,我干脆直接把整个目录文件的权限

阿里云史上最大技术升级:面向万物智能的飞天2.0

摘要: 27年后的2018杭州?云栖大会上,阿里云公布了面向万物智能的新一代云计算操作系统--飞天2.0,可满足百亿级设备的计算需求,覆盖从物联网场景随时启动的轻计算到超级计算的能力,实现从生产资料到生活资料的智能化,改善社会运转效率,这也是阿里云史上最大的一次技术升级. 1991年,<科学美国人>杂志描绘了一种"无处不在的计算设备,没人会感觉到它的存在",拉开了万物智能的序幕. 27年后的2018杭州?云栖大会上,阿里云公布了面向万物智能的新一代云计算操作系统--飞天2.

阿里云vps上mysql挂掉的解决办法

阿里云vps上mysql挂掉的解决办法 4条回复 用阿里云的vps用作blog服务器,系统很稳定,已经100多天一直运行正常,大概从上个月开始发现blog的mysql会有时挂掉,会收到短信通知.之前没太追究,重新启动了mysql解决的.今天上午又收到短信,已经第三次了. 查了一下日志,三次基本都是一样的: 130728 6:50:14 [Note] Plugin 'FEDERATED' is disabled. 130728 6:50:14 InnoDB: The InnoDB memory h

阿里云服务器上架设apache php mysql 环境

由于朋友一公司要做企业站,于是就买了阿里云的服务器.买完进去发现iptables 和selinux默认就是关掉的,可能是因为阿里云有云盾就可以不用自带的防火墙吧,具体配置过程如下(我边配边记录的): 1,生成yum 缓存: yum makecache 速度蛮不错,生成蛮快 2,安装apache,centos 封装apache为httpd了,直接安装就可以 yum install httpd 安装完后,开机默认启动该服务 chkconfig httpd on 现在启动服务 service http

阿里云服务器上安装mysql的心路历程(博友们进来看看哦)

在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许多问号存在我的脑海里.... 说说我在阿里云服务器上安装mysql的心路历程吧,刚开始安装好java8和tomcat8,安装非常的顺利,但是我接下来要安装mysql了,在网上看到一篇帖子(是rpm包安装的,也在本机上的centos6.5安装过没有问题),所以我就按照这个安装mysql,可是失败了,报

navicat远程连接阿里云ECS上的MYSQL报Lost connection to MySQL server at &#39;reading initial communication packet&#39;

问题现象 MySQL 远程连接报错:Lost connection to MySQL server at 'reading initial communication packet' 解决方案 1.检查是否有防火墙限制2.检查 MySQL 是否有访问权限 use mysql; Grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option; flush privileges; 3.检查 my.ini 文