在一定数量的物理内存下运行程序?

时间:2010-01-17 11:23:46

标签: linux

我想在我的Dreamhost Linux主机中安装qt。如您所知,任何托管服务都将限制其用户资源,如CPU和内存。当链接QT时,它将导致ld链接器超过400M内存,然后它被Dreamhost的进程监视器杀死...   我尝试谷歌几个小时没有找到任何真正的答案我的问题。我正在搜索可以在一定数量的物理内存下运行程序的Linux命令实用程序。我的意思是,我可以把它当作:

 memory-limit  -m 200M  ld ld-args ... 

然后,ld将运行在200M以下的物理内存,但这并不意味着ld不能分配超过200M。当ld分配超过200M时,物理内存不会增加,它将使用交换磁盘。而ld内存的RES部分不会超过200M ...

我知道,我需要的功能听起来像虚拟机,我想知道KVM是否可以提供这样的功能。我真的很想知道是否有这样的工具...... :)如果您对此有所了解,请帮忙。

谢谢!

4 个答案:

答案 0 :(得分:1)

添加一些交换空间; Linux可以交换一个文件,所以如果你可以创建几千兆字节的交换文件,那将完成链接。

但是,您真的应该能够为Dreamlinux获取二进制包并安装它,而不是尝试在那里编译QT。

答案 1 :(得分:0)

如果这只是关于编译QT,最简单的解决方案是将其编译到其他地方(具有相同OS和拱的虚拟机可能?)然后只复制二进制文件。

答案 2 :(得分:0)

您是否尝试过减少依赖关系?我假设您根本不使用GUI用于Web应用程序,也许您只需要QtCore共享库,它应该要小得多。

默认情况下,qmake链接到QtGUI。

答案 3 :(得分:0)

不完全是你的问题的答案,但你可以尝试使用这些选项设置运行ld,这可以提高其生存机会:

  • --no-keep-memory
  • --reduce-memory-overheads