Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-15 Пенетрантность Stanislav Maslovski
On Sat, Aug 15, 2009 at 11:10:06AM +0400, Oleg A. Anisimov wrote:
 14 августа 2009 г. 20:18 пользователь Stanislav Maslovski 
 stanislav.maslov...@gmail.com написал:
 
 On Fri, Aug 14, 2009 at 08:03:51PM +0400, Alexey Pechnikov wrote:
  Hello!
 
  On Friday 14 August 2009 19:35:04 Stanislav Maslovski wrote:
   Ввод-вывод порождает массу прерываний, это во-первых. Во-вторых,
   процесс, занятый активным вводом-выводом, проводит изрядное количество
   времени в kernel mode, что при CONFIG_PREEMPT_NONE=y (дефолт в
   дебиане) означает, что ему будет доставаться больше CPU-time, чем
   остальным процессам (а их, активируемых по таймеру, например, в
   дестопной системе немало, плюс еще kernel threads). В результате имеем
   то, что имеем.
 
  А в других дистрибутивах как? И что с ними происходит в серверном
 режиме?..
 
 Честно говоря, давно не интересовался. В десктопной убунте ядро с
 CONFIG_PREEMPT=y и HZ=1000 (могу ошибаться). Для типичного сервера
 дебиановское умолчание больше подходит. Хотя было бы интересно
 взглянуть на бенчмарки.
 
 Может глупость сморожу. Возможно теперь уже есть смысл пакетировать в
 дистрибутиве
 две версии ядер: оптимизированные для сервера и оптимизированные под десктоп?

Почему глупость? Само по себе это было бы вполне логично. Только тогда
kernel team придется поддерживать еще и десктопные ядра, что,
насколько я понимаю, и останавливает.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-15 Пенетрантность Иван Лох
On Sat, Aug 15, 2009 at 02:20:26PM +0400, Stanislav Maslovski wrote:
  дистрибутиве
  две версии ядер: оптимизированные для сервера и оптимизированные под 
  десктоп?
 
 Почему глупость? Само по себе это было бы вполне логично. Только тогда
 kernel team придется поддерживать еще и десктопные ядра, что,
 насколько я понимаю, и останавливает.

Есть еще вопрос о том действительно ли preemptive multitasking нужна на 
десктопе.
Линус к ней очень скептически относится. Для приложений действительно 
нуждающихся
в низкой латентности в ядро вносятся сейчас различные реалтаймовые вещи. А
психопатам-холерикам можно посоветовать таблетки или яббл. Это конечно от 
workflow
зависит, но когда я (давно) экспериментировал, то у меня при высокой нагрузке и
активном своппинге система с CONFIG_PREEMPT вела себя отвратительным образом.



-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-15 Пенетрантность Stanislav Maslovski
On Sat, Aug 15, 2009 at 04:59:41PM +0400, Иван Лох wrote:
 On Sat, Aug 15, 2009 at 02:20:26PM +0400, Stanislav Maslovski wrote:
   дистрибутиве
   две версии ядер: оптимизированные для сервера и оптимизированные под 
   десктоп?
  
  Почему глупость? Само по себе это было бы вполне логично. Только тогда
  kernel team придется поддерживать еще и десктопные ядра, что,
  насколько я понимаю, и останавливает.
 
 Есть еще вопрос о том действительно ли preemptive multitasking нужна на 
 десктопе.
 Линус к ней очень скептически относится.

Некоторое время назад у меня в mplayer при определенных условиях на
дефолтовом ядре воспроизведение звука шло с заиканиями. На ядре,
собранном с PREEMPT, такого не наблюдалось. Игры под wine (не всем
интересно, но тем не менее) шли более плавно c PREEMPT. Опять же,
при высокой дисковой активности система ощутимо более отзывчива c
PREEMPT.

 Для приложений действительно нуждающихся в низкой латентности в ядро
 вносятся сейчас различные реалтаймовые вещи.

Проблема с классическим линуксом скорее даже не в просто высокой
латентности, а в непредсказуемо высокой латентности. 

 А психопатам-холерикам можно посоветовать таблетки или яббл.
 конечно от workflow зависит, но когда я (давно) экспериментировал, то
 у меня при высокой нагрузке и активном своппинге система с
 CONFIG_PREEMPT вела себя отвратительным образом.

Сейчас у меня дефолтовое ядро 2.6.30 (sid, пересобирать при
обновлениях лень). При активном IO ноут уходит в себя. В 90% idle
режиме - комфортно. Что при свопинге с PREEMPT происходить будет,
не проверял, надо попробовать. Еще такой момент: в ядреном конфиге
зело много параметров, завязанных на PREEMPT. Разные сборки могут
дать весьма разные результаты.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 09:32:07AM +0300, Nick wrote:
 13 августа 2009 г. 23:20 пользователь Ed (sp...@yandex.ru) написал:
  Artem Chuprina wrote:
 
  Тебе ж сказали: using OR WAITING FOR.  rdiff-backup жрет ресурсы так,
  что другим процессам приходится ждать их освобождения достаточно долго,
  чтобы их (этих процессов) накопилось немало.
 
  Я полагаю, что ждать им приходится скорее дискового ввода-вывода, нежели
  процессора.
 
  немного другой пример - делаю на тормозную usb fash:
  dd if=/dev/zero of=/dev/sdc
  la растёт до 4 и выше.
  почему? больше никто к /dev/sdc не обращается.
 
 По тому, что процесс хотел получить время для исполнения на
 процессоре, но не получил, так как ожидал I/O.
 Как сказали выше, LA показывает среднее количество процессов, не
 получивших время для исполнения, за несколько циклов. ИМХО если в
 течение четырёх циклов процесс не получил время на исполнение ни разу,
 то LA будет 4.
 В расчёт попадут все, кто не получил время на исполнение, кроме тех
 процессов, которые уснули по собственному желанию.

Коллеги, кончайте бред нести уже. Load average в линукс считается
проще некуда. В сети масса информации на эту тему. Лень искать в гугл
- загляните в собственную копию сырцов ядра (если таковая имеется).
Там related кода на три строчки.

Для ленивых привожу формулу (а-ля TeX):

L_{i+1} = q L_i + (1 - q)(N_r + N_u)

где L_i - load average в момент t_i, N_r - число процессов в состоянии 
TASK_RUNNING,
N_u - в состоянии TASK_UNINTERRUPTIBLE, и

{ exp(-5/60), для 1 min average
q = { exp(-5/(5*60)), для 5 min average
{ exp(-5/(15*60), для 15 min average

Интервал t_{i+1} - t_i = 5 сек при HZ = 100.

Желающие проверить могут заглянуть в
linux/kernel/{timer.c,sched.c,shed.h}

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 02:48:57PM +0400, Stanislav Maslovski wrote:

 Желающие проверить могут заглянуть в
 linux/kernel/{timer.c,sched.c,shed.h}

Поправка: sched.h в include/linux.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 03:30:49PM +0400, Alexey Pechnikov wrote:
 Hello!
 
 On Friday 14 August 2009 14:48:57 Stanislav Maslovski wrote:
  Коллеги, кончайте бред нести уже. Load average в линукс считается
  проще некуда. В сети масса информации на эту тему. Лень искать в гугл
  - загляните в собственную копию сырцов ядра (если таковая имеется).
  Там related кода на три строчки.
 
 Это не ответ. Из сказанного вами совершенно не следует, что нужно подкрутить, 
 чтобы LA при запуске rdiff-backup не превышал, скажем, 4.
 Какой смысл приводить некую формулу, смысл которой вы не знаете?

Смысл каждого члена в этой формуле был ясно обозначен. Что в ней
непонятного? Если ты не доверяешь моей компетенции, почему бы тогда
тебе самому не заглянуть в сырцы?

 Если знаете, то абстракцией какой модели она является и какие параметры 
 следует менять? 

Exponentialy weighted moving average. Параметр (он один - q) приведен
в моем исходном письме.

PS:
Вообще, в других рассылках на подобные необоснованные ничем нападки
принято отвечать одной строкой:

ПНХ.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 04:25:19PM +0400, Alexey Pechnikov wrote:
 Hello!
 
 On Friday 14 August 2009 15:46:15 Stanislav Maslovski wrote:
   Это не ответ. Из сказанного вами совершенно не следует, что нужно 
   подкрутить, 
   чтобы LA при запуске rdiff-backup не превышал, скажем, 4.
   Какой смысл приводить некую формулу, смысл которой вы не знаете?
  
  Смысл каждого члена в этой формуле был ясно обозначен. Что в ней
  непонятного? Если ты не доверяешь моей компетенции, почему бы тогда
  тебе самому не заглянуть в сырцы?
  
   Если знаете, то абстракцией какой модели она является и какие параметры 
   следует менять? 
  
  Exponentialy weighted moving average. Параметр (он один - q) приведен
  в моем исходном письме.
 
 Шутить изволите?
 В приведенном вами выражении количество процессов TASK_RUNNING и 
 TASK_UNINTERRUPTIBLE определяется характеристиками и параметрами планировщика 
 ввода-вывода (в данном случае известно, что по io перегрузка). Вы можете из 
 приведенного 
 вами выражения вывести зависимость от параметров sysctl?

Кто ж тебя знает, о какой модели ты спрашиваешь: о матмодели усреднения или
чем-то еще. Выражайтесь, батенька, яснее. Телепаты, способные
углядеть sysctl меж Ваших бредовых строк, все в отпуске.

  PS:
  Вообще, в других рассылках на подобные необоснованные ничем нападки
  принято отвечать одной строкой:
  
  ПНХ.
 Без комментариев.

Без шуток.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 04:34:22PM +0400, Ed wrote:
 Stanislav Maslovski wrote:
 On Fri, Aug 14, 2009 at 09:32:07AM +0300, Nick wrote:
   
 13 августа 2009 г. 23:20 пользователь Ed (sp...@yandex.ru) написал:
 
 немного другой пример - делаю на тормозную 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)
   

 так и не понял, как с помощью этой формулы при записи в один поток  
 получатся LA4

Когда процессов в runqueue (N_r) больше, чем 1, load average может
быть больше, чем один. Чтобы runqueue заполнилась, надо систему
порядочно нагрузить. Заполнение runqueue происходит потому, что под
нагрузкой процессы не успевают выполнить текущую работу за
отведенный квант и заснуть.

Не стоит также забывать, что в линуксе куча kernel threads в добавок к
процессам в userspace.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 04:25:19PM +0400, Alexey Pechnikov wrote:
 Вы можете из приведенного вами выражения вывести зависимость от параметров 
 sysctl?

Дабы предотвратить разрастание флейма, отвечу и на этот вопрос:
Нет, не могу. Ибо в такой постановке задача не решаема в принципе.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Иван Лох
On Fri, Aug 14, 2009 at 06:12:22PM +0400, Alexey Pechnikov wrote:
  А для начала я бы попробовал осознать и перебрать разные типы i/o 
  schedulers.
 Почему-то мне кажется, что под мои совершенно типичные задачи на ноуте 
 должно подходить стандартное ядро. То есть хотелось бы на это надеяться.
 Хотя, может быть, дефолтовый шедулер как раз под многодисковые сервера и 
 написан.

Это не так ;-} В-общем, ядро в поставке Debian ориентировано на максимальную 
производительность, а в жертву приносится низкая латентность. Именно поэтому
запись на диск не прерывается. Установите  CONFIG_PREEMPT при компиляции ядра
и ситуация изменится.



-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
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)
 
 так и не понял, как с помощью этой формулы при записи в один поток   
 получатся LA4
 

 Когда процессов в 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



Re: Что такое Load ave rage и почему для одного процесса он может бы ть 1

2009-08-14 Пенетрантность Stanislav Maslovski
On Fri, Aug 14, 2009 at 08:03:51PM +0400, Alexey Pechnikov wrote:
 Hello!
 
 On Friday 14 August 2009 19:35:04 Stanislav Maslovski wrote:
  Ввод-вывод порождает массу прерываний, это во-первых. Во-вторых,
  процесс, занятый активным вводом-выводом, проводит изрядное количество
  времени в kernel mode, что при CONFIG_PREEMPT_NONE=y (дефолт в
  дебиане) означает, что ему будет доставаться больше CPU-time, чем
  остальным процессам (а их, активируемых по таймеру, например, в
  дестопной системе немало, плюс еще kernel threads). В результате имеем
  то, что имеем.
 
 А в других дистрибутивах как? И что с ними происходит в серверном режиме?..

Честно говоря, давно не интересовался. В десктопной убунте ядро с
CONFIG_PREEMPT=y и HZ=1000 (могу ошибаться). Для типичного сервера
дебиановское умолчание больше подходит. Хотя было бы интересно
взглянуть на бенчмарки.

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org