2013-03-06 111 views
2

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

top我可以看到,“wa”stat在编译速度减慢的同时急剧增加。

最初:

%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 

我已经尝试了很多不同的实例类型,都具有相同的结果。

据我了解,一个高华/ iowait意味着一个慢磁盘。因此,我也尝试在ec2实例中的不同坐骑上编译应用程序,但这不会导致改进。

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

UPDATE 2013年3月6日08:00

正如意见中的要求:

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

我想你应该指定确切的gcc版本。 – sharptooth 2013-03-06 08:00:58

回答

2

的解决方案是使用一台具有超过8 GB的RAM。显然,GCC使用了大量的RAM来编译这个特定的程序。

1

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

我也注意到,在执行诸如编译代码等处理器繁重操作时,您可能会在micro实例上获得此类挂起行为。总是至少做一些这样的事情,如果有必要的话,当你做完了之后,再做一次微型事情。