无法在EC2上使用GCC进行编译

时间:2013-03-06 07:59:05

标签: gcc amazon-ec2

我正在尝试在AWS EC2实例(c1.medium)上使用GCC编译程序。 cc1plus进程正确启动但过了一段时间后它们停止使用任何CPU,整个编译过程变慢并且从未完成。

top中,我可以看到“wa”统计数据在编译速度变慢的同时急剧增加。

最初:

%Cpu(s): 88.1 us,  5.4 sy,  0.0 ni,  0.0 id,  0.5 wa,  0.0 hi,  0.0 si,  6.0 st

当编译过程变慢时:

%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 50.2 id, 49.3 wa,  0.0 hi,  0.0 si,  0.0 st

我尝试过很多不同的实例类型,但都有相同的结果。

据我所知,高wa / iowait意味着慢盘。因此,我也尝试在ec2实例中的不同坐骑上编译应用程序,但这不会带来改进。

有没有人有在EC2上编译c / c ++应用程序的经验,知道如何解决这个问题?

更新2013-03-06 08:00

根据评论中的要求:

$ gcc --version 
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2

2 个答案:

答案 0 :(得分:2)

解决方案是使用内存超过8 GB的计算机。显然,GCC使用了大量的RAM来编译这个特定的程序。

答案 1 :(得分:1)

很高兴看到你自己找到了解决方案。

我还注意到,在执行处理器繁重操作(如编译代码)时,您可以在 micro 实例上获得此类挂起行为。总是在至少一小部分上做这种事情,然后在必要时,在完成后转换回微观。