7

Я написал программу для класса, который мой профессор будет тестировать в различных средах с нехваткой памяти, чтобы посмотреть, как он себя ведет, когда программе не хватает памяти. Есть ли способ, которым я могу имитировать выполнение в среде с низким объемом памяти без создания виртуальной машины?

1 ответ1

8

Вы хотите использовать 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
$

Примечание: если я установлю ограничения в 1000 килобайт, ни одна из программ не будет работать, потому что они загружают библиотеки, которые увеличивают их размер. выше 1000 кб.

размер сегмента данных

-м максимальный объем памяти

-v размер виртуальной памяти

Запустите ulimit -a, чтобы увидеть все ограничения ресурсов, которые может установить ulimit.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .