@jaffrey

Как уменьшить потребление оперативной памяти и поддерживать много процессов одной программы?

Нужно запустить много процессов одной программы. Нет возможности ее переписать. Нужно просто сделать много запусков (у каждого процесса свои настройки) в идеале до 1000 на одной машине. Как можно технически уменьшить потребление памяти? Слышал что можно сделать раздел в оперативной памяти, а в нем раздел имитации жесткого диска и запускать оттуда, чтобы можно было поддерживать множество процессов одновременно, вместо запуска напрямую 500 процессов. Программа представляет собой консольное приложение, работающее на запросах.
  • Вопрос задан
  • 938 просмотров
Решения вопроса 2
Jump
@Jump
Системный администратор со стажем.
Никак.
Потребление памяти определяется самой программой, способ запуска на это никак не влияет.

Слышал что можно сделать раздел в оперативной памяти, а в нем раздел имитации жесткого диска и запускать оттуда,
Это как раз способ уменьшить объем доступной памяти.
Ответ написан
@Tsimur_S
не очень понятен момент с жестким диском, если вы экономите память то увеличиваете своп и получаете сильные тормоза. Если памяти завались а жесткий диск вас замедляет то вам нужен RamDisk.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
1) Несколько экземпляров одного приложения будут использовать довольно много общей памяти - страницы с кодом приложения и разделяемые библиотеки будут присутствовать в памяти в единственном экземпляре.
2) В Linux существует подсистема "KSM Page Migration" - система дедупликации страниц памяти, на большом количестве однотипных процессов может существенно сократить потребление оперативной памяти.
Ответ написан
Комментировать
x67
@x67
Посмотрите, сколько программа потребляет в пике и напишите скрипт запуска с разными параметрами так, что бы одновременно работало не более floor(ram/ramperprocess) процессов программы. А если программа требовательна к ресурсам цп, то лучше ограничить это число количеством ядер/потоков
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы