阴谋安装使用的内存有限吗?

问题描述 投票:18回答:2

我的服务器托管受到1GB内存的限制。当我想编译诸如git-annex之类的大程序时,Cabal占用了大量内存。是否可以使用某些选项限制内存使用量来限制cabalgcl

我更新了一些细节的问题:我正在Webfaction托管(CentOS 7-64位)上运行cabal(1.22.4.0)和Ghc 7.10.2,可以访问shell(非root用户访问权限)。 Webfaction管理员/机器人通常可以容忍由于编译而导致的突发事件。但是Ghc / Cabal需要太多的内存,并且花费太多的时间进行某些程序包的编译。因此,系统会自动终止所有进程。

我需要多次重新启动编译才能最终获得成功的结果。

我的主要目标是编译以成功而告终,无论它花多长时间。

haskell ghc cabal cabal-install memory-consumption
2个回答
1
投票

@ reyman64建议已确认可在具有2GB内存的Xubuntu 18.04上使用。谢谢!因此,cabal install -v cabal-install挂起系统。以下工作正常:

cabal install -v --ghc-options='+RTS -M1G -RTS' cabal-install

2
投票

编辑:帖子尚不清楚真正的问题,因此请忽略此答案,因为它是在写其他想法的同时,但有一些有用的评论。

[我认为,如果从外部将Cabal或GHC的内存消耗限制为1GB,则由于Linux内存保护程序(或所谓的有人,请有人吗?)而提前终止,您将开始获得很多失败的构建。如果您找到一种方法说服Cabal自己使用更少的内存并说服GHC也节食,则可能不是这种情况。

我最近在只有1GB交换空间的1GB虚拟机上构建Curry KiCS2时遇到了这个问题。 (当然,我的目标不是限制内存消耗,而是要完成该死的事情,所以我要做的就是将VM内存增加到4GB并交换到8GB,但这显然不是您要的。)

因此,我认为在编译过程中,GHC可能不会存在消耗大量内存的解决方法。只要确保并行编译已关闭即可。研究意味着通过(可能是GHC本身的)编译标志来减少GHC的内存消耗,或者关闭可能消耗大量内存的优化阶段,等等。

但是,更聪明的想法可能证明我错了。

© www.soinside.com 2019 - 2024. All rights reserved.