如何解决编译导致工作进入假死状态
编译某些程序经常导致假死,特别是mozilla的东西。在桌面上如果出现假死现象,会导致其它工作进程陷入瘫痪,硬盘狂转,编译变慢,虽然有些编译进入僵死时不理会它也会完成编译,其它工作进程转为正常,但也有的编译会让机器慢至甚至8小时都不能完工,这些编译工作如果没有X服务的情况下也就几十分钟。
没有在gnome桌面的系统下编译过多少东西,从KDE3开始就有这些毛病,但不知道是否有办法解决这个毛病。为何编译工作会吃掉所有的资源,进而导致效率低下到无法工作? 曾经win98 应用年代出现好多释放内存的程序,难不成Linux下也需要这样的工具? 编译器的问题,大部分情况是内存溢出导致所有内存和交换分区全都被占用。 除非是你暴力超多线程编译,不然不应该导致机器无法使用的地步。
当然咱先不考虑flash的问题…… 我编译上层包比较少,但是底层包来看,应该没有大问题,都是很严谨的。 编译 OpenSceneGraph 导致硬盘灯狂闪,KDE 假死至状态栏时间停止了一个多小时,忍无可忍强制重启了机器。这个问题是一直以来 Linux 的大问题,编译某些组件会出现资源狂占直至假死,假死状态编译效率过低,如果能撑过去还好,撑不了就不用等了,几分钟的编译可能会延长至几个小时。
OpenSceneGraph 昨晚是睡着了成功编译过一次,因为文件和 SPEC 档不符,所以重编译又遇假死,只好直接 %files 打包了,安装包文件要是大点就大点了。
我不知道新的内核是否能解决这个问题,等有空编译一次传说中神奇鸡血补丁的 kernel-2.6.38.x 。 。。 内核的调度算法改下试试。 原帖由 sejishikong 于 2011-4-12 10:09 发表 http://www.linuxfans.org/bbs/images/common/back.gif
内核的调度算法改下试试。
加载了 2.6.38 的 cgroup 后,在编译 OpenSceneGraph 时仍然有点卡,的确有所改观,至少不会陷入完全假死的境地。
[ 本帖最后由 haulm 于 2011-4-14 00:49 编辑 ]
页:
[1]