我正在尝试在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
答案 0 :(得分:2)
解决方案是使用内存超过8 GB的计算机。显然,GCC使用了大量的RAM来编译这个特定的程序。
答案 1 :(得分:1)
很高兴看到你自己找到了解决方案。
我还注意到,在执行处理器繁重操作(如编译代码)时,您可以在 micro 实例上获得此类挂起行为。总是在至少一小部分上做这种事情,然后在必要时,在完成后转换回微观。