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 <[EMAIL PROTECTED]>