На сервере работают Apache, MySQL, Exim и PHP. Кроме них - большая и толстая программа, отрабатывающая большие неравномерные и не стабильные потоки данных.
Как зарезервировать дисковое пространство, память и процессорный ресурс для первых? Как можно автоматически "притормаживать" второе?
Откуда, кроме load system average в proc можно получить данные о текущей загрузке системы? Надо динамически программно принимать решения о принятии новых процессов на обработку или помещении их в очередь.
И, кстати, в чем именно измеряется load system average - что за единицы? На одном сервере увидел двузначные числа, на другом - от 0,1 до 2, на форуме приводят трехзначные...
Как зарезервировать ресурсы для процесса?
Модераторы: SLEDopit, Модераторы разделов
-
listasitem
- Сообщения: 144
- ОС: Debian Lenny 5
Как зарезервировать ресурсы для процесса?
Использую Debian Lenny 5 - счастлив, чего и вам искренне желаю!
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Как зарезервировать ресурсы для процесса?
listasitem писал(а): ↑30.08.2009 11:45И, кстати, в чем именно измеряется load system average - что за единицы? На одном сервере увидел двузначные числа, на другом - от 0,1 до 2, на форуме приводят трехзначные...
Там наверно средняя длинна очереди к CPU за последнии 5, 10 и 15 минут,
а может быть средняя загрузка CPU в процентах (читайте man там должно быть написано)
listasitem писал(а): ↑30.08.2009 11:45Откуда, кроме load system average в proc можно получить данные о текущей загрузке системы?
лучше всего наверно поставить пакет sysstat и использовать команду sar
Квоты man quota; man edquota
Но они не по процессам, а по пользователям и группам.
В многопроцессорных системах в линукс можно объединять CPU в группы и привязывать процессы к этим группам CPU и можно перебрасывать процессоры между группами. (сейчас поищу ссылку)
Для распределение процессорного времени можно использовать nice. (man nice; man renice)
listasitem писал(а): ↑30.08.2009 11:45Как зарезервировать дисковое пространство, память и процессорный ресурс для первых? Как можно автоматически "притормаживать" второе?
По хорошему, Вам нужна функциональность аналогичная FSS, PRM+WLM. Но я не знаю, есть ли реализации таких вещей под Линукс.
Мне тоже это очень интересно.
С нетерпением жду ответов.
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
listasitem
- Сообщения: 144
- ОС: Debian Lenny 5
Re: Как зарезервировать ресурсы для процесса?
Пишу очередь. Запускаю новые задачи на обработку при завершении предыдущих, ограничил кол-во потоков.
Интересно, а можно-ли сделать что-то, чтобы гарантированно "застраховать" Apache, PHP и MySQL от перегруза со стороны других программ в системе.
Интересно, а можно-ли сделать что-то, чтобы гарантированно "застраховать" Apache, PHP и MySQL от перегруза со стороны других программ в системе.
Использую Debian Lenny 5 - счастлив, чего и вам искренне желаю!
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Как зарезервировать ресурсы для процесса?
listasitem писал(а): ↑31.08.2009 18:50Интересно, а можно-ли сделать что-то, чтобы гарантированно "застраховать" Apache, PHP и MySQL от перегруза со стороны других программ в системе.
Исходя из того, что я знаю о linux, максимум, что Вы можете сделать - это назначить Apache, PHP и MySQL nice = -20 (минус двадцать). Это серьезно перераспределит процессорное время в их пользу, но ничего не гарантирует.
UDP
А менее приоритетные задачи, запускайте с положительным значением nice = 19
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED