10.3.3. Применение ограничений использования ресурсов

10.3.3. Применение ограничений использования ресурсов

Чтобы помочь в предотвращении неконтролируемого снижения производительности процессами, Unix отслеживает многие ресурсы, которые может использовать процесс, и позволяет системному администратору и самим пользователям накладывать ограничения на расход ресурсов процессами.

Предусмотрены два класса доступных ограничений: жесткие и мягкие ограничения. Жесткие обычно установлены при запуске системы в RLIM_INFINITY, что означает отсутствие каких-либо ограничений. Единственное исключение из этого — RLIMIT_CORE (максимальный размер дампа памяти), который Linux инициирует нулем, чтобы предотвратить неожиданный сброс дампов ядра. Многие дистрибутивы сбрасывают этот лимит при запуске, однако, большинство технических пользователей ожидают появления дампов памяти при некоторых условиях (информацию о дампах памяти можно найти далее в главе). Мягкие ограничения — это те ограничения, которые установлены в ядре в данный момент. Любой процесс может наложить мягкое ограничение на использование ресурса на определенном уровне — равном или более низком, чем установленное жесткое ограничение.

Таблица 10.2. Ограничения ресурсов

Значение Лимит
RLIMIT_AS Максимальный объем памяти, доступный процессу. Включает память для стека, глобальных переменных и динамически выделенную память.
RLIMIT_CORE Максимальный размер дампа памяти, генерируемого ядром (если файл дампа получается слишком большим, он не создается).
RLIMIT_CPU Общее используемое время процессора (в секундах). Более подробно об этом ограничении рассказывается при описании SIGXCPU в главе 12.
RLIMIT_DATA Максимальный объем памяти данных (в байтах). Это не включает динамически выделенную память.
RLIMIT_FSIZE Максимальный размер открытого файла (проверяется при записи). Более подробно об этом ограничении рассказывается при описании SIGXFSZ в главе 12.
RLIMIT_MEMLOCK Максимальный объем памяти, которая может быть блокирована с помощью mlock(). Функция mlock() рассматривается в главе 13.
RLIMIT_NOFILE Максимальное количество открытых файлов.
RLIMIT_NPROC Максимальное количество дочерних процессов, которые может породить данный процесс. Это ограничивает только количество дочерних процессов, которые могут существовать одновременно. Это не ограничивает количества наследников дочерних процессов — каждый из них может иметь до RLIMIT_NPROC потомков.
RLIMIT_RSS Максимальный объем ОЗУ, использованный в любой момент (всякое превышение этого объема используемой памяти вызывает страничную подкачку). Это также известно под названием размера резидентной части (resident set size).
RLIMIT_STACK Максимальный размер памяти стека (в байтах), включая все локальные переменные.

Различные ограничения, которые могут быть установлены, перечислены в табл. 10.2 и определены в <sys/resource.h>. Системные вызовы getrlimit() и setrlimit() устанавливают и получают ограничения для отдельного ресурса.

int getrlimit(int resource, struct rlimit *rlim);

int setrlimit(int resource, const struct rlimit *rlim);

Обе эти функции используют структуру struct rlimit, определенную следующим образом:

struct rlimit {

 long int rlim_cur; /* мягкое ограничение */

 long int rlim_max; /* жесткое ограничение */

};

Второй член структуры — rlim_max, указывает жесткое ограничение лимита, переданного в параметре resource, a rlim_cur — мягкое ограничение. Это те же наборы лимитов, которыми манипулируют команды ulimit и limit, одна из которых встроена в большинство командных оболочек.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Добавление ограничений в таблицу

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

Добавление ограничений в таблицу В процессе создания таблицы можно добавить ограничения (constraints). Они аналогичны индексу, но используются для обозначения уникального, первичного или внешнего ключа.Ограничение создается с помощью предложения SQL CONSTRAINT, которое принимает


3.6.1. Определение ограничений

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

3.6.1. Определение ограничений Для определения (задания) ограничений используется команда edquota. Ограничение дискового пространства пользователя производится командой edquota с параметром –u (см. рис. 3.7), а определение квот для группы — с параметром –g. После выполнения этой


Настройка ограничений доступа к сайтам

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Настройка ограничений доступа к сайтам Браузер Internet Explorer позволяет ограничить доступ к некоторым сайтам. Для этого предназначена вкладка Содержание окна Свойства обозревателя (рис. 8.1).Вкладка содержит три области, с помощью которых можно задать настройки безопасности


Применение к сценариям WSH политики ограниченного использования программ

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

Применение к сценариям WSH политики ограниченного использования программ В Windows ХР встроены политики ограниченного использования программ (SRP, Software Restriction Policies), с помощью которых можно управлять возможностью выполнения программного обеспечения на компьютере. Политики SRP


Проверка ограничений на имена

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Проверка ограничений на имена Для этой проверки используется четвертая группа переменных состояния. Проверяется, принадлежит ли имя субъекта сертификата одному из разрешенных поддеревьев иерархии отличительных имен X.500 и не принадлежит ли одному из запрещенных


Удаление ограничений

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Удаление ограничений Необходимо выполнять удаление ограничений в правильной последовательности, если ограничения PRIMARY KEY и CHECK имеют зависимости.! ! !СОВЕТ. Для поиска имен ограничений может оказаться полезным выполнение четырех системных просмотров, определенных в


Взаимодействие ограничений

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Взаимодействие ограничений Комбинируя формальное ссылочное ограничение с другими ограничениями целостности (см. главу 16), можно реализовать большинство (если не все) бизнес-правил с высокой степенью точности. Например, ограничение столбца NOT NULL будет корректировать


Настройки ограничений

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Настройки ограничений Отдельно стоит сказать о возможностях работы с ограничениями, которые можно настроить для закрытия доступа к страницам, содержащим насилие или другие запретные темы. Доступ к данным настройкам можно получить после нажатия кнопки Настройка на


Создание ограничений

Из книги Написание скриптов для Blender 2.49 автора Anders Michel

Создание ограничений Давайте рассмотрим создание ограничений подробнее. Первой в описании общего синтаксиса ограничений идет опция [CONSTRAINT constraint]. Как видите, эта опция взята в квадратные скобки и, значит, необязательна.С помощью этой опции можно задавать имя


Удаление ограничений

Из книги автора

Удаление ограничений Часто приходится удапять различные ограничения по самым разным причинам. Чтобы удалить ограничение, необходимо воспользоваться предложением ALTER TABLE следующего вида: ALTER TABLE cablename DROP CONSTRAINT constraintname где constraintname - имя ограничения, которое следует


Имена индексов ограничений

Из книги автора

Имена индексов ограничений Использование явных планов в Yaffil в триггерах и процедурах существенно упрощается благодаря возможности именования индексов, автоматически создаваемых сервером для ограничений первичных, внешних ключей и ограничений уникальности. В версиях


3.3. Применение ограничений при работе с перекрестными видами

Из книги автора

3.3. Применение ограничений при работе с перекрестными видами Постановка задачи Требуется выровнять компонент пользовательского интерфейса относительно другого компонента пользовательского интерфейса, притом что родительские элементы у этих компонентов


13.7. Получение ресурсов из библиотеки ресурсов

Из книги автора

13.7. Получение ресурсов из библиотеки ресурсов Постановка задачи Требуется получить фотографии или видео непосредственно из библиотеки фотографий, не прибегая к использованию каких-либо встроенных компонентов графического пользовательского


 Программирование  ограничений

Из книги автора

 Программирование  ограничений Блендер имеет  много ограничений, которые Вы можете применить к объекту. Некоторые из них похожи на управляющие объекты (drivers), в том смысле, что они не ограничивают движение объекта, но могут копировать некоторые параметры, такие как


Добавление простых ограничений

Из книги автора

Добавление простых ограничений Ограничения (Constraints) могут быть применены к объектам и костям. В обоих случаях ограничение добавляется вызовом метода append() атрибута constraints. Наш следующий пример покажет, как мы можем ограничить движение стрелок часов из rigged clock (Глава 3,