Автор Тема: Высокий iowait на ядре led-vs  (Прочитано 1415 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Высокий iowait на ядре led-vs
« : 22.01.2016 14:30:36 »
Ядро led-vs, текущий Сизиф.

$ su -
Password:
# uname -r
3.15.10-led-vs-alt8

Монтируем образ:
# mount ./regular-xfce-sysv-20150616-i586.iso /mnt/disk -o loop
mount: /dev/loop0 is write-protected, mounting read-only
# runlevel
N 5
# chkconfig --list | grep '5\:вкл'
acpid          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
alteratord      0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
consolesaver    0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
cpufreq-simple 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
dm              0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
fbsetfont      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
gpm            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
keytable        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
klogd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
lvm2-lvmpolld  0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
messagebus      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
network        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
ntpd            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
powertop        0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
random          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
rpcbind        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
spice-vdagentd 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
syslogd        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
sysstat        0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
udevd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл

Монтируем live из образа:
# time -f %e mount /mnt/disk/live /mnt/disk2 -o loop
mount: /mnt/disk2: mount failed: Cannot allocate memory
Command exited with non-zero status 2
126.38

И наблюдаем стремительный рост занимаемой памяти
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        948         53          0          0         49
-/+ buffers/cache:        898        103
Swap:         3586        531       3055
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        951         51          0          0         42
-/+ buffers/cache:        908         93
Swap:         3586        767       2819
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        951         51          0          0         35
-/+ buffers/cache:        914         87
Swap:         3586       1737       1849
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        950         51          0          0         37
-/+ buffers/cache:        912         89
Swap:         3586       1980       1606
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        942         59          0          0         39
-/+ buffers/cache:        902         99
Swap:         3586       2384       1202
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        876        125          0          0         36
-/+ buffers/cache:        839        162
Swap:         3586       2447       1139

Здесь, операция монтирования live из образа - /mnt/disk/live, уже прервалась вылетев с ошибкой
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002         77        925          0          0         41
-/+ buffers/cache:         35        967
Swap:         3586        117       3469


На ядре un-def из того же Сизифа, подобного не наблюдается:
$ su -
Password:
# runlevel
N 5
# uname -r
4.4.0-un-def-alt1
# mount ./regular-xfce-sysv-20150616-i586.iso /mnt/disk -o loop
mount: /dev/loop0 is write-protected, mounting read-only
# chkconfig --list | grep '5\:вкл'
acpid          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
alteratord      0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
consolesaver    0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
cpufreq-simple 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
dm              0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
fbsetfont      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
gpm            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
keytable        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
klogd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
lvm2-lvmpolld  0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
messagebus      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
network        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
ntpd            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
powertop        0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
random          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
rpcbind        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
spice-vdagentd 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
syslogd        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
sysstat        0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
udevd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
# time -f %e mount /mnt/disk/live /mnt/disk2 -o loop
0.11
# free -m
             total       used       free     shared    buffers     cached
Mem:           997        332        665          0         22        187
-/+ buffers/cache:        121        876
Swap:         3586          0       3586

На led-vs, от образа это никак не зависит, - спотыкается на монтировании live из смонтированного образа:
$ su -
Password:
# free -m
             total       used       free     shared    buffers     cached
Mem:          1002        349        652          0         19        200
-/+ buffers/cache:        129        872
Swap:         3586          0       3586
# runlevel
N 5
# chkconfig --list | grep '5\:вкл'
acpid          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
alteratord      0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
consolesaver    0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
cpufreq-simple 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
dm              0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
fbsetfont      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
gpm            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
keytable        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
klogd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
lvm2-lvmpolld  0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
messagebus      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
network        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
ntpd            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
powertop        0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
random          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
rpcbind        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
spice-vdagentd 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
syslogd        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
sysstat        0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
udevd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл

Монтируем образ - всё гладко
# mount ./regular-xfce-sysv-20160118-i586.iso /mnt/disk -o loop
mount: /dev/loop0 is write-protected, mounting read-only
# umount /mnt/disk
# echo 3 > /proc/sys/vm/drop_caches
# time -f %e mount ./regular-xfce-sysv-20160118-i586.iso /mnt/disk -o loop
mount: /dev/loop0 is write-protected, mounting read-only
0.50
# uname -r
3.15.10-led-vs-alt8

Монтируем live из образа
# time -f %e mount /mnt/disk/live /mnt/disk2 -o loop
mount: /mnt/disk2: mount failed: Cannot allocate memory
Command exited with non-zero status 2
130.25

и память стремительно начинает чем-то заполняться
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        947         54          0          0         59
-/+ buffers/cache:        887        114
Swap:         3586        250       3336
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        950         51          0          0         45
-/+ buffers/cache:        904         97
Swap:         3586        875       2711
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        938         63          0          0         37
-/+ buffers/cache:        900        101
Swap:         3586       1927       1659
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        939         62          0          0         36
-/+ buffers/cache:        902         99
Swap:         3586       2393       1193
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        900        101          0          0         35
-/+ buffers/cache:        864        137
Swap:         3586       2438       1148
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002        891        110          0          0         36
-/+ buffers/cache:        854        147
Swap:         3586       2498       1088

Здесь операция монтирования уже обломалась и память освободилась
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1002         87        915          0          0         48
-/+ buffers/cache:         38        964
Swap:         3586        126       3460

Под чем выполнялись операции?
$ xfce4-about --version
xfce4-about 4.12.1 (Xfce 4.12)
$ xfce4-terminal --version
xfce4-terminal 0.6.3 (Xfce 4.12)


IOWAIT настолько высок, что выполнить простейшую операцию в терминале огромная проблема:
# time -f %e mount /mnt/disk/live /mnt/disk2 -o loop
mount: /mnt/disk2: mount failed: Cannot allocate memory
Command exited with non-zero status 2
132.02
$ sar -P ALL 1
Linux 3.15.10-led-vs-alt8 (comp-pentium-m-e6b072.localdomain) 22.01.2016 _i686_ (1 CPU)

...
13:52:41        CPU     %user     %nice   %system   %iowait    %steal     %idle
13:52:42        all      5,00      0,00     23,00     72,00      0,00      0,00
13:52:42          0      5,00      0,00     23,00     72,00      0,00      0,00
^C


13:52:42        CPU     %user     %nice   %system   %iowait    %steal     %idle
13:52:44        all      5,77      0,00     22,12     72,12      0,00      0,00
13:52:44          0      5,77      0,00     22,12     72,12      0,00      0,00

Среднее:     CPU     %user     %nice   %system   %iowait    %steal     %idle
Среднее:     all      5,37      0,00     27,10     67,53      0,00      0,00
Среднее:       0      5,37      0,00     27,10     67,53      0,00      0,00


Просьба, по возможности быстрее, подтвердить, для отправления багрепорта.

dango

  • Гость
Re: Высокий iowait на ядре led-vs
« Ответ #1 : 22.01.2016 15:06:40 »
Speccyfighter, описанный баг проявляется на данный момент только при монтировании раздела live из примонтированного образа конкретно моей сборки? А другие сборки с live?
Просьба, по возможности быстрее, подтвердить, для отправления багрепорта.
Я еще на работе. Вечером постараюсь проверить на нетбуке.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Высокий iowait на ядре led-vs
« Ответ #2 : 22.01.2016 15:49:38 »
Speccyfighter, описанный баг проявляется на данный момент только при монтировании раздела live из примонтированного образа конкретно моей сборки? А другие сборки с live?
Просьба, по возможности быстрее, подтвердить, для отправления багрепорта.
Я еще на работе. Вечером постараюсь проверить на нетбуке.

Базовая система, с твоего образа regular-xfce+sysv-i586.
Там в сообщении первый тест монтирования образа сборки Миши Шигорина на системе с ядром led-vs; потом тест на ядре un-def c тестом монтирования образа Мишиной сборки; после теста на un-def, тест снова под led-vs, но уже с монтированием твоего образа.
Проблема вылазит именно при выполнении операции монтирования в системе на ядре led-vs в момент монтирования файла live, который является образом лайв-системы - облом на команде:
mount /mnt/disk/live /mnt/disk2 -o loop

Именно после этой команды, команда ещё не отработала, память+виртуальная_память (т.е. своп), начинают при монтировании образа (live-а в *.iso) в несколько сотен мегабайт, стремительно заполняться до гигабайтов, пока не упрётся в
failed: Cannot allocate memory

В нормальной ситуации, чтобы увидеть содержимое лайв-исошника, операция проходит в две команды за доли секунды и память эти операции не трогают:
mount /где/лежит/образ.iso  /mnt/disk -o loop
mount /mnt/disk/live  /mnt/disk2 -o loop
В /mnt/disk2 увидим содержимое лайв системы (надо было Шигоринскую и твою сборки про-diff-ить).

Но при выполнении второй команды в системе с ядром led-vs, вместо быстрого монтирования в доли секунды, при выполнении команды, память начинает стремительно чем-то заполняться пока не упрётся в потолок. При этом iowait во время выполнения второй команды монтирования настолько высок, что выполнение команд в системе очень проблематично.
free -m запущенная во время выполнения второй команды монтирования, покажет как память и виртуальная память начинают чем-то стремительно заполняться во время выполнения этой второй команды.
От образа, из которого будем монтировать live (файл в *.iso), это никак не зависит.

Проблема очень серьёзная.
« Последнее редактирование: 22.01.2016 15:54:16 от Speccyfighter »

dango

  • Гость
Re: Высокий iowait на ядре led-vs
« Ответ #3 : 22.01.2016 16:14:41 »
Проблема вылазит именно при выполнении операции монтирования в системе на ядре led-vs в момент монтирования файла live, который является образом лайв-системы
Понятно... Пытаюсь прикинуть где еще это может выстрелить...
надо было Шигоринскую и твою сборки про-diff-ить
Профиль брал как есть, без изменений. А собрана по состоянию Сизифа на указанное число.
Впрочем, сравнить стоит.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Высокий iowait на ядре led-vs
« Ответ #4 : 22.01.2016 16:37:09 »
Проблема вылазит именно при выполнении операции монтирования в системе на ядре led-vs в момент монтирования файла live, который является образом лайв-системы
Понятно... Пытаюсь прикинуть где еще это может выстрелить...

надо было Шигоринскую и твою сборки про-diff-ить
Профиль брал как есть, без изменений. А собрана по состоянию Сизифа на указанное число.
Впрочем, сравнить стоит.

Уверен был что ты собрал точно так же, но подумал что отбросить diff-ом малейшие сомнения стоит.
Мало ли...
И вот здесь нарвался на баг led-vs.

У меня на текущий момент, одна проблема накладывается на другую:
В принципе можно diff-ить и не на led-vs, но не могу гарантировать, что при выходе из спячки систему не придётся выводить из ступора через SysRq, и тогда потеряю всё что наработано в терминале, а это мягко говоря напрягает, быть постоянно настороже.

dango

  • Гость
Re: Высокий iowait на ядре led-vs
« Ответ #5 : 25.01.2016 07:44:00 »
Я еще на работе. Вечером постараюсь проверить на нетбуке.
Speccyfighter, прошу прощения. Не проверил. Выходные накрылись медным тазом.
Уверен был что ты собрал точно так же, но подумал что отбросить diff-ом малейшие сомнения стоит.
Мало ли...
Лучше проверить, чем предполагать.
Upd. Увидел в теме Xfce c Sysv
« Последнее редактирование: 25.01.2016 07:46:57 от dango »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Высокий iowait на ядре led-vs
« Ответ #6 : 25.01.2016 10:28:45 »
Speccyfighter, прошу прощения. Не проверил. Выходные накрылись медным тазом.

Всё нормально. Всё идёт своим чередом.
С ядром бы на моём ноуте как-то устаканилось, а остальное всё решаемо :-)