On Fri, Aug 14, 2009 at 05:54:31PM +0400, Ed wrote: > Stanislav Maslovski wrote: >>>>>> немного другой пример - делаю на тормозную usb fash: >>>>>> dd if=/dev/zero of=/dev/sdc >>>>>> la растёт до 4 и выше. >>>>>> почему? больше никто к /dev/sdc не обращается. >>>>>> >>>> Для ленивых привожу формулу (а-ля TeX): >>>> >>>> L_{i+1} = q L_i + (1 - q)(N_r + N_u) >>>> >>> так и не понял, как с помощью этой формулы при записи в один поток >>> получатся LA>4 >>> >> >> Когда процессов в runqueue (N_r) больше, чем 1, load average может >> быть больше, чем один. Чтобы runqueue заполнилась, надо систему >> порядочно нагрузить. Заполнение runqueue происходит потому, что под >> нагрузкой процессы не успевают выполнить текущую работу за >> отведенный квант и заснуть. >> > > теоретически запись на usb flash на остальные процессы (не работающие с > этим устройством) влиять не должна.
Ввод-вывод порождает массу прерываний, это во-первых. Во-вторых, процесс, занятый активным вводом-выводом, проводит изрядное количество времени в kernel mode, что при CONFIG_PREEMPT_NONE=y (дефолт в дебиане) означает, что ему будет доставаться больше CPU-time, чем остальным процессам (а их, активируемых по таймеру, например, в дестопной системе немало, плюс еще kernel threads). В результате имеем то, что имеем. >> Не стоит также забывать, что в линуксе куча kernel threads в добавок к >> процессам в userspace. > > угу. вот детали и интересуют :) Детали тебе покажет atop. -- Stanislav -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org