Я записал программу для класса, который мой преподаватель будет тестировать в различных низких средах памяти, чтобы видеть, как это ведет себя когда прогоны программы из памяти. Существует ли способ, которым я могу моделировать выполнение в низкой среде памяти, не создавая виртуальную машину?
Вы захотите использовать ulimit
ulimit может использоваться для ограничения использования памяти (среди прочего)
Вот пример установки использования памяти настолько низко что
/bin/ls
(который больше, чем/bin/cat
) больше работы, но/bin/cat
все еще работы.$ ls -lh /bin/ls /bin/cat -rwxr-xr-x 1 root root 25K May 24 2008 /bin/cat -rwxr-xr-x 1 root root 88K May 24 2008 /bin/ls $ date > test.txt $ ulimit -d 10000 -m 10000 -v 10000 $ /bin/ls date.txt /bin/ls: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory $ /bin/cat date.txt Thu Mar 26 11:51:16 PDT 2009 $
Примечание: Если я установил пределы к 1 000 килобайтов, никакая программа работают, потому что они загружают библиотеки, которые увеличивают их размер. выше 1 000 КБ.
- d размер сегмента данных
- m макс. емкость памяти
- v размер виртуальной памяти
Выполненный ulimit-a для наблюдения всех ограничений ресурсов ulimits может установить.