Запустить программу под определенным объемом физической памяти? - PullRequest
2 голосов
/ 17 января 2010

Я хочу установить qt на мой хост Dreamhost Linux.Как известно, любая хостинговая служба будет ограничивать свои пользовательские ресурсы, такие как процессор и память.При связывании QT это приведет к тому, что компоновщик ld будет занимать более 400 МБ памяти, а затем он будет убит монитором процессов Dreamhost ... Я пытаюсь гуглить часами, не находя реального ответа на мою проблему.Я ищу командную утилиту Linux, которая может запустить программу под определенным объемом физической памяти.Я имею в виду, я могу запустить его как:

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

И тогда ld будет работать под 200M физической памяти, но это не значит, что ld не может выделить больше 200M.Когда ld выделит более 200 МБ, физическая память не увеличится, и он будет использовать диск подкачки.И доля RES в памяти ld не будет превышать 200M ...

Я знаю, нужная мне функция звучит как виртуальная машина, мне интересно, может ли KVM предоставить такую ​​функцию.Мне действительно интересно, есть ли такой инструмент ... :) Пожалуйста, помогите, если вы знаете что-то об этом.

Спасибо!

Ответы [ 4 ]

1 голос
/ 17 января 2010

Добавьте немного пространства подкачки;Linux может поменять файл, поэтому, если вы можете создать несколько гигабайт файла подкачки, это позволит выполнить связывание.

Однако вы действительно должны иметь возможность получить двоичный пакет для Dreamlinux и просто установитьэто, а не пытаться скомпилировать QT там.

0 голосов
/ 17 января 2010

Не совсем ответ на ваш вопрос, но вы можете попробовать запустить ld с этими настройками, которые могут повысить его шансы на выживание:

  • --no-keep-memory
  • --reduce-memory-overheads
0 голосов
/ 17 января 2010

Вы пытались уменьшить зависимости? Я предполагаю, что вы вообще не используете GUI для веб-приложений, возможно, вам нужна только общая библиотека QtCore, которая должна быть значительно меньше.

По умолчанию qmake связывается с QtGUI.

0 голосов
/ 17 января 2010

Если речь идет только о компиляции QT, самое простое решение - это скомпилировать его где-нибудь еще (виртуальная машина с той же ОС и, возможно, Arch?), А затем просто скопировать двоичные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...