2

我正在尝试在 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
4

2 回答 2

2

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

于 2013-03-07T08:55:57.100 回答
1

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

我还注意到,在执行处理器繁重的操作(例如编译代码)时,您可以在实例上获得这种挂起行为。始终至少在小型设备上进行此类操作,然后在必要时在完成后转换回微型设备。

于 2013-03-07T23:12:52.133 回答