Существуют различные способы проводить такую политику, но существует довольно очевидная причина, почему она не существует по умолчанию во-первых: потому что система предназначается для использования к ее максимальному потенциалу. По аналогии: при покупке автомобиля, который мог бы сделать 200 км/ч, и он имел 100-литровый корпус, Вы, вероятно, не хотели бы, которым управляют программным обеспечением, которое ограничило скорость 100 км/ч и остановило автомобиль, когда корпус был 2/3 пустой, даже если Вы были ведущими "в течение долгого времени".
Примечание там не является никаким универсальным определением "продолжительных". Действительно ли 40 минут длительны? Как насчет 8 часов? 24 часа? 3 дня? Неделя, месяц или год? Ни один из тех не настолько необычен.
Относительно пределов ресурса, упомянутых повышенным, это - основные средства, которыми можно "проводить такую политику". Вы на самом деле не спросили, как сделать это, таким образом, я не буду напрасно тратить время, входя в глубину, однако, Вы действительно спрашивали о пределах. Относительно ЦП и памяти, нет никого. Это от getrlimit
/setrlimit
страница справочника системного вызова:
getrlimit () и setrlimit () системные вызовы получают и устанавливают пределы ресурса соответственно. Каждый ресурс имеет связанный мягкий и жесткий предел, как определено rlimit структурой [...] значение RLIM_INFINITY не обозначает предела на ресурс (оба в структуре, возвращенной getrlimit () и в структуре, передали setrlimit ()).
Таким образом, относительно легко проверить это программно:
#include <stdio.h>
#include <sys/resource.h>
#include <errno.h>
#include <string.h>
#include <stdint.h>
int main (void) {
struct rlimit rl;
int resources[] = {
RLIMIT_CPU,
RLIMIT_DATA,
RLIMIT_AS,
RLIMIT_RSS
};
char labels[][16] = { "CPU", "Data", "Virtual", "Resident" };
int rlen = sizeof(resources) / sizeof(int);
printf("RLIM_INFINITY is %lu\n", (uint64_t)RLIM_INFINITY);
for (int i = 0; i < rlen; i++) {
if (getrlimit(resources[i], &rl) != 0) {
fprintf(stderr,"!!%s\n", strerror(errno));
return -1;
}
printf("%8s soft: %lu hard: %lu\n",
labels[i],
(uint64_t)rl.rlim_cur,
(uint64_t)rl.rlim_max
);
}
return 0;
}
Можно скомпилировать это gcc -std=gnu99
и попробуйте его сами. Это - самый категорический источник информации, так как он запрашивает ядро непосредственно. Если кто-то намеренно не настроил пределы на Вашу систему, Вы получите что-то как:
RLIM_INFINITY is 18446744073709551615
CPU soft: 18446744073709551615 hard: 18446744073709551615
Data soft: 18446744073709551615 hard: 18446744073709551615
Virtual soft: 18446744073709551615 hard: 18446744073709551615
Resident soft: 18446744073709551615 hard: 18446744073709551615
Разъясниться для непрограммистов: значение "RLIM_INFINITY" является значением, предназначенным для указания на "бесконечность" или никакой предел (так как компьютеры не могут представить бесконечность как число). Поля RLIMIT объяснены в странице справочника, для суммирования:
RLIMIT_CPU: предел Процессорного времени в секундах.
RLIMIT_DATA: максимальный размер сегмента данных процесса (инициализируемые данные, неинициализированные данные и "куча").
RLIMIT_AS: максимальный размер виртуальной памяти процесса (адресное пространство) в байтах.
RLIMIT_RSS: Указывает предел (на страницах) резидентного набора процесса (количество виртуального резидентного объекта страниц в RAM).
Они соответствуют фактическим значениям использования, в которых Вы видите top
(ЦП, ДАННЫЕ, VIRT и RSS).
Снова: в нормальной системе Linux нет никакого предела для каждого процесса на CPU или память, но можно установить такой.
] Использовали ли вы полный URL-адрес для доступа к принтеру SMB? [
] [] Войдите в веб-интерфейс CUPS и выберите новый принтер. В качестве устройства выберите "Принтер Windows через SAMBA". [
] []Введите местоположение устройства: [
] [smb://username:password@hostname/printer_name
]
[] Вышеуказанное находится на странице вики-сайта Arch Linux []CUPS Printer Sharing[]. [
] [][] Примечание:[] для входа в другой веб-интерфейс CUPS используйте [] http://localhost:631[
][