アプリ版:「スタンプのみでお礼する」機能のリリースについて

同様のご経験、問題を解消したご経験のある方は、是非お教えください。

VirtualBox上で稼働するDebian 8.0.0においてgcc-5.1.0をコンパイルしたところ、Stage 1の後半から極端に遅くなってしまいます。
使用コンパイラはgcc-4.9.2です。

●Stage 1の処理に3-4日(08:00 - 20:00)程度かかり、Stage 2ではおそらく一週間程かかるものと思われます(まだ最後まで到達したことがありません。)。

●同じ環境で"binutils-2.25","gdb-7.9","gmp-6.0.0","make-4.1","mpc-1.0.3","mpfr-3.1.2"をコンパイル済みですが特に『遅い』とは感じませんでした。

●top/mpstatなどで状態を確認しても、ディスクI/O待ち、あるいはメモリ不足、等の原因を特定できません。
例えばtopの表示は次のようになります。

top - 14:08:18 up 6:24, 12 users, load average: 4.67, 4.64, 4.77
Threads: 331 total, 7 running, 324 sleeping, 0 stopped, 0 zombie
%Cpu(s): 90.5 us, 5.0 sy, 0.2 ni, 1.9 id, 2.1 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 2058576 total, 1206984 used, 851592 free, 152008 buffers
KiB Swap: 937980 total, 0 used, 937980 free. 349824 cached Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13317 xxxxxxxx 20 0 138152 91252 21536 R 76.8 4.4 30:04.29 cc1plus      <<<---
14571 xxxxxxxx 20 0 114628 65832 20628 R 51.2 3.2 5:40.74 cc1plus <<<---
922 root 20 0 307676 95828 21144 R 38.4 4.7 8:09.47 Xorg
1277 xxxxxxxx 20 0 173232 22092 17340 S 6.4 1.1 8:00.14 xfwm4
12974 xxxxxxxx 20 0 141732 94000 20680 R 6.4 4.6 35:28.66 cc1plus <<<---
12975 xxxxxxxx 20 0 141424 103908 32180 R 6.4 5.0 35:38.17 cc1plus <<<---
1 root 20 0 28752 5108 2972 S 0.0 0.2 0:01.18 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:11.37 ksoftirqd/0

注意: 『make -j 4』 でコンパイルしています。

●ゲストOS(Debian)が持つ資源は次のとおりです。

CPU: 2コア(3.62GHz)

HDD:
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/dm-0 20G 9.6G 9.0G 52% /
udev 10M 0 10M 0% /dev
tmpfs 403M 5.9M 397M 2% /run
tmpfs 1006M 68K 1006M 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1006M 0 1006M 0% /sys/fs/cgroup
/dev/sdb 21G 3.6G 16G 19% /export
/dev/sda1 236M 33M 191M 15% /boot
kan:/public1/public 294G 38G 256G 13% /mnt/public
tmpfs 202M 4.0K 202M 1% /run/user/117
tmpfs 202M 8.0K 202M 1% /run/user/1007

注意:コンパイルは/export内で行っています。

問題を解消する方法はあるでしょうか? あるいは仮想コンピュータ上の能力は、一般的にこのようなものなのでしょうか。

A 回答 (1件)

ホスト側の環境が不明なので、


VirtualBoxのゲストは1コアに設定し、make の -j オプションは使わないでください。

↓Linuxでも同様です。
> VirtualBox – go to Settings/System/Processor and allocate only 1 core to Guest machine.


関係ないけど、 GNU Makeで -j を使う時も、 -j だけ指定すればGNU Makeが自動でやってくれるのに手動指定しているのは何故?
    • good
    • 0
この回答へのお礼

どう思う?

早速回答ありがとうございます。

●ホスト側の環境が不明な......
Solaris10 メモリ: 8Gb CPU: 6コア 3.62GHz です。

●.....-j だけ指定すればGNU Makeが自動でやってくれるのに手動指定しているのは何故?
元々『-j』を付けずにコンパイルしていたのですが、『こりゃえらい遅いや』と気づき、webを探したところ『最も効率のよいのは、物理コア数の2倍程度の数値を-Jに指定する....』をどこかで見つけたことによります。

明日一日、ご指摘の環境でコンパイルして、結果をご報告します。

お礼日時:2015/06/17 15:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!