Предел ЦП на отдельные выполнимые файлы банки

У меня есть .sh сценарий со многими файлами банки в нем. Каждый файл банки имеет уникальные аргументы запуска. Я должен ограничить все файлы банки для не использования больше чем %5 ЦП каждый.

nohup java -a dsasda -p adss
nohup java -a dsasad -p adds
nohup java -a dsdasa -p adsa
nohup java -a dsdsa -p adds
nohup java -a ddassa -p adas

Я читал о cpulimit инструменте, как я использую его для предназначения для отдельных банок?

4
задан 18 August 2016 в 19:03

2 ответа

Используя cpulimit

я буду вести с инструментом, который Вы предложили; cpulimit может определенно сделать то, что Вы хотите. nohup cpulimit --background --limit=5 -- java -a dsasda -p adss

Принимают во внимание, что 5% составляют 5% единственное ядро процессора , не общей вычислительной мощности машины. Увеличьте масштаб этого, если Вы хотели использовать 5% многоядерной машины.

Вы, вероятно, захотите также передать --quiet аргумент cpulimit.

, Если Ваше требование не состоит в том, чтобы конкретно ограничить процесс 5%, но только сохранить Java от срывания Вашей машиной, рассматривают вместо этого использование nice.

Используя nice

nice понизит приоритет Ваших процессов Java так, чтобы они не были пожиратель ресурсов все процессорное время & замедлите вещи. В отличие от этого cpulimit, nice позволит процессам Java использовать больше чем 5% ЦП, если ничто иное не захочет использовать его.

nohup nice java -a dsasda -p adss

nice принимает один дополнительный аргумент, --adjustment=N, где N является целым числом в пределах от 19 (очень низкий приоритет) к 0 (нормальный) или даже к-20 (очень высокий приоритет, но только доступный, если Вы - корень). Это примет значение по умолчанию к 10, который прекрасен, вероятно.

5
ответ дан 1 December 2019 в 09:07

Можно использовать cpulimit, как Вы предполагаете, Вы нацелены на предел путем определения PID процесса, который Вы хотите ограничить, таким образом, Вы могли породить и ограничить каждую из вышеупомянутых задач к 5% ЦП со следующим сценарием:

#!/bin/sh
nohup java -a dsasda -p adss &
nohup cpulimit -p $! -l 5 >/dev/null &
nohup java -a dsasad -p adds &
nohup cpulimit -p $! -l 5 >/dev/null &
nohup java -a dsdasa -p adsa &
nohup cpulimit -p $! -l 5 >/dev/null &
nohup java -a dsdsa -p adds &
nohup cpulimit -p $! -l 5 >/dev/null &
nohup java -a ddassa -p adas &
nohup cpulimit -p $! -l 5 >/dev/null &

Примечание, что $! означает PID последнего процесса, порожденного оболочкой (в этом случае команда Java в предыдущей строке). -l 5 средства ограничивают 5%.

3
ответ дан 1 December 2019 в 09:07

Другие вопросы по тегам:

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