[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: в чем измеряется load average?




On Oct 11, 2004, at 6:03 PM, Nikita V. Youshchenko wrote:

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

Ну это никакого отношения к действительности не имеет :). А то получится,
что никакая машина не в состоянии выполнить два параллельных процесса,
занимающих CPU - при этом la будет двойкой :).
хм, немного не понял. имеем 2 процесса типа
int main ( int argc, char ** argv )
{
	while ( 1 );
	return 0;
}
Если мы запускаем таких 2, то имеем la == 2, для того чтобы эти процессы исполнялись с максимальной производительностью нужно 2 головы. Что не противоречит тому что я говорил.

Большой (скажем, >10) la *возможно* (но далеко не обязательно) указывает на
наличие проблем с производительностью - в связи с тем, что:
- каждый процесс, находящиеся в состоянии D (TASK_UNINTERRUPTIBLE),
добавляет единичку к la
- процесс, ожидающий свопа, находится в состоянии D,
- частый признак нехватки ресурсов - большое количество процессов, ожидающих
свопа.

А также большое кол-во ожидающих любого другого IO. Я выше отметил, что затыков по дискам быть не должно, swap это затык по дискам.

Но это далеко не единственный случай, когда la высокий! Например, если
запустить в фоне с низким приоритетом (nice -n19) несколько тяжёлых для CPU
задач, это [при наличии достаточного объёма физической памяти] мало
повлияет на "отзывчивость" системы, но заставит подпрыгнуть la.
Совершенно справедлино, т.к. для каждого из процессов типа while (1) нужна своя голова для выполнения, а занижение им приоритета лишь повышает отзывчивость системы, но при этом производительности машины для выполнения всех ваших процессов не хватает о чем и говорит высокий la.

Так что не понял, что именно из того что я сказал ранне не имеет никакого отношения к жизни.

--
Alexander Egorushkin <paranoic@stacksoft.ru>

Reply to: