Запуск приложения с различными объемами памяти с помощью команды rmss
В режиме драйвера команда rmss вызывает указанное приложение несколько раз, каждый раз изменяя объем памяти, и собирает информацию о производительности приложения.
rmss [ -s начальный-размер-памяти ] [ -f итоговый-размер-памяти ] [ -d приращение ]
[ -n число-итераций ] [ -o файл-вывода ] командаНиже приведено описание флагов команды. Флаги -s, -f и -d задают диапазон объемов памяти.
- -n
- Сколько раз характеристики должны измеряться при каждом значении объема памяти.
- -o
- Файл, в который записывается отчет команды rmss. Вместо команды нужно указать приложение, характеристики которого нужно измерить в системе с различными объемами памяти.
- -s
- Начальный объем памяти.
- -f
- Итоговый объем памяти.
- -d
- Шаг приращения.
-s 256 -f 128 -d 32-s 128 -f 256 -d 32Если флаг -s не указан, то в качестве начального объема памяти команда rmss применяет фактический объем оперативной памяти компьютера. Если не задан флаг -f, то команда rmss выполняет последнее измерение в системе с объемом памяти 8 МБ. Если не указан флаг -d, то объем памяти каждый раз изменяется на 8 МБ.
Какие значения следует указать с флагами -s, -f и -d? Самый простой критерий выбора значений заключается в том, чтобы заданный диапазон включал в себя объем памяти тех систем, в которых планируется выполнять приложение. Однако если приращение будет составлять меньше 8 МБ, то вы сможете узнать, сколько памяти остается у системы в запасе при выполнении приложения в системе со стандартным объемом памяти. Например, если при выполнении приложения в системе с объемом памяти 120 МБ возникает перегрузка памяти, а в системе с объемом памяти 128 МБ операции подкачки не выполняются, то важно знать, при каком объеме памяти начинается перегрузка. Если перегрузка начинается при объеме памяти 127 МБ, то рекомендуется запускать приложение в системах с объемом памяти больше 128 МБ, либо изменить приложение таким образом, чтобы для его выполнения требовалось меньше памяти. Если же перегрузка начинается при объеме памяти 121 МБ, то 128 МБ оперативной памяти вполне достаточно для работы приложения.
-n 3Какое значение нужно задать с флагом -n? Если время выполнения приложения составляет больше 10 секунд, укажите -n 1. В этом случае команда будет выполняться дважды, однако при каждом объеме памяти измерение будет выполняться только один раз. Флаг -n позволяет сократить время выполнения команды rmss за счет того, что во время инициализации ей не придется определять, сколько раз нужно запускать программу. Это особенно важно при тестировании долго работающих и интерактивных приложений.
Обратите внимание, что перед выполнением измерений для очередного объема памяти команда rmss делает пробный запуск программы. "Разогрев" позволяет устранить операции ввода/вывода, связанные с загрузкой приложения в оперативную память. Хотя такие операции влияют на производительность, это влияние не обязательно связано с нехваткой оперативной памяти. Пробный запуск не учитывается в числе итераций, заданном с флагом -n.
Флаг -o позволяет задать файл, в который будет записан отчет команды rmss. Если флаг -o не задан, то отчет записывается в файл rmss.out.
В параметре команда необходимо указать приложение, характеристики которого нужно измерить. Можно указать любую исполняемую программу или сценарий оболочки, в том числе с аргументами. Есть определенные ограничения на формат команды. В частности, в ней не должен перенаправляться поток ввода или вывода (то есть команды в формате foo > output и foo < input недопустимы). Это связано с тем, что команда rmss рассматривает все значения справа от имени программы, как аргументы этой программы. Для того чтобы перенаправить поток ввода или вывода, напишите сценарий оболочки.
# (rmss -s 24 -f 8 foo) >> output