Мягкий, жесткий лимит ресурса python - PullRequest
1 голос
/ 26 февраля 2020

Какова практическая разница между soft и hard limit в python s resource?

Например, какая разница между выполнением:

import resource
soft_limit,hard_limit=resource.getrlimit(resource.RLIMIT_DATA)

# set soft limit
resource.setrlimit(resource.RLIMIT_DATA, (1024,hard_limit))

# set soft and hard limit
resource.setrlimit(resource.RLIMIT_DATA, (1024,1024))

И, наконец, да, я прочитал документы для мягкого и жесткого предела и до сих пор не понимаю в практическом плане в чем разница:

Использование ресурсов можно ограничить с помощью функции setrlimit (), описанной ниже. Каждый ресурс контролируется парой ограничений: мягкое ограничение и жесткое ограничение. Мягкое ограничение - это текущее ограничение, которое может быть уменьшено или увеличено с течением времени. Мягкий предел никогда не может превышать жесткий предел. Жесткий предел может быть снижен до любого значения, превышающего мягкий, но не повышен. (Только процессы с эффективным UID суперпользователя могут повысить жесткий предел.)

1 Ответ

2 голосов
/ 26 февраля 2020

CPython resource, по-видимому, использует setrlimit из sys/resource. Просматривая руководство lib c GNU , можно сказать о текущих (мягких) и жестких пределах:

С ресурсом связаны два ограничения для каждого процесса :

текущий предел

Текущий предел - это значение, которое система не допустит для использования. Он также называется «мягким пределом», поскольку ограничиваемый процесс обычно может увеличивать текущий предел по желанию.

максимальный предел

Максимальный предел - это максимальное значение которому процессу разрешено устанавливать свой текущий лимит. Это также называется «жестким пределом», потому что процесс не может обойти его. Процесс может снизить свой собственный максимальный предел, но только суперпользователь может увеличить максимальный предел.

Итак, tl; dr: soft, потому что процесс может увеличить свой предел, трудно, потому что не может, разница указано в последнем предложении в скобках добавленных вами документов:

(Только процессы с эффективным UID суперпользователя могут поднять жесткий лимит.)

...