k001
k001
:...

April 2032
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

k001 [userpic]
вопрос клубу

Что делать?

Имею проблему - система встаёт раком при чтении большого файла с CD, или при чтении CD, к примеру, командой readcd. Подробности:


Система (Athlon 700, 256Mb RAM, CD-combo Toshiba R1312, ASPLinux 9):

$ uname -a
Linux kir.darnet.ru 2.4.20-20.9asp #1 Вск Сен 28 19:01:09 MSD 2003 i686 athlon i386 GNU/Linux
$ free
             total       used       free     shared    buffers     cached
Mem:        255276     251588       3688          0      42288      86676
-/+ buffers/cache:     122624     132652
Swap:      1052216     125836     926380

]# /sbin/hdparm /dev/hdd /dev/hdd: HDIO_GET_MULTCOUNT failed: Invalid argument IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) readonly = 0 (off) BLKRAGET failed: Invalid argument HDIO_GETGEO failed: Invalid argument



При копировании большого (600-700 Mb) файла или чтении диска с помощью readcd система встаёт раком.


Вот что показывает vmstat 2

   procs                      memory      swap          io     system      cpu
 r  b  w   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id
 1  0  0 124920   5748  42296  90600    2    5   126   123  155   243  6 10 83
 0  0  0 124920   5748  42304  90600    0    0     0    20  136   254  3  0 97
 0  0  0 124920   5752  42304  90600    0    0     0     0  145   296  2  1 97
 1  0  0 124920   5748  42312  90600    0    0     0    14  139   348 14  0 86
 0  0  0 124920   5748  42312  90600   24    0    24     0  155   943 38  2 60
 1  0  0 124920   5748  42312  90600    0    0     0     0  102   111  1  0 99
 0  0  0 124920   5748  42320  90600    0    0     0    10  103    99  1  0 99
 2  0  0 124920   5496  42380  90540    0    0    30     0  122   140  3  1 96
 1  0  0 124920   5516  42348  90580    0    4     0    22  189   187  6  4 90
 2  0  0 124920   5516  42344  90584    0    0     0     0  803   190  4 46 50
 5  0  0 124920   5516  42344  90584    0    0     0     0 1145   206  6 89  5
 4  0  0 124920   5516  42352  90584    0    0     0    10  855    86  3 97  0
 3  0  1 124920   5516  42352  90584    0    0     0     0  460    71  3 97  0
 5  0  2 124920   5516  42352  90584    0    0     0     2  388    63  1 99  0
 4  0  1 124920   5516  42360  90584    0    0     0    10  240    67  0 100  0
 3  0  1 124920   5516  42360  90584    0    0     0     0  230    68  1 99  0
 5  0  1 124920   5516  42360  90584    0    0     0     0  232    67  0 100  0
 5  0  0 124920   5516  42360  90584    0    0     0     0  231    55  1 99  0
 4  0  1 124920   5516  42376  90584    0    0     0    18  234    61  0 100  0
 6  0  0 124920   5520  42376  90584    0    0     0     0  232    56  1 99  0
 3  0  0 124920   5516  42376  90584    0    0     0     0  238    58  0 100  0
   procs                      memory      swap          io     system      cpu
 r  b  w   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id
 4  0  0 124920   5520  42384  90584    0    0     0     8  233    55  1 99  0
 3  0  1 124920   5516  42384  90584    4    0     4     0  235   281  2 98  0
 7  0  2 124920   5516  42392  90584    0    0     0     8  241    69  0 100  0
 4  0  3 124920   5516  42392  90584    0    0     0     0  240    67  1 99  0
 5  0  2 124920   5520  42392  90584    0    0     0     0  239    68  0 100  0
 4  0  2 124920   5516  42400  90584    0    0     0    10  241    66  0 100  0
 4  0  1 124920   5516  42400  90584    6    0     6     0  235   114  2 98  0
 4  0  0 124920   5516  42400  90584    0    0     0     0  258   137  4 96  0
 5  0  1 124920   5520  42400  90584    0    0     0     0  246    63  1 99  0
 5  0  2 124920   5520  42400  90584    0    0     0     0  236    55  0 100  0
 5  0  1 124920   5516  42400  90584    0    0     0     0  232    63  0 100  0
 4  0  0 124920   5516  42400  90584    0    0     0     0  233    60  0 100  0
 4  0  2 124920   5516  42400  90584    0    0     0     0  234   100  5 95  0
 4  0  2 124920   5516  42400  90584    0    0     0     0  239    69  0 100  0
 4  0  1 124920   5516  42400  90584    0    0     0     0  238    70  1 99  0
 4  0  0 124920   5516  42400  90584    0    0     0     0  237    68  1 99  0
 4  0  2 124920   5516  42400  90584    0    0     0     0  236    61  0 100  0
 4  0  2 124920   5516  42400  90584    0    0     0     0  239    70  0 100  0
 5  0  2 124920   5516  42400  90584    0    0     0     0  230   105  4 96  0
 4  0  1 124920   5516  42400  90584    0    0     0   620  300    60  0 100  0
 4  0  1 124920   5516  42400  90584    0    0     0     0  303    58  0 100  0

Comments

первое что приходит в голову - memtest читал?

мемтест86 я регулярно запускаю. всё в порядке.

Чтобы не быть голословным, погонял мемтест86 немного (2 прохода сделал он сегодня). Всё ОК.

Неужели ни у кого такой хрени не наблюдается?...

Что значит встает раком? ;-) зависает, тормозить начинает или все рывками дергается ?

Ну ты ж видишь, что он 99-100% времени проводит в system. В общем, всё замирает, обновление экрана в X Window происходит примерно раз в минуту, мышкин курсор двигается тоже с тем же интервалом.

top показывает сущую ерунду - рисует по 20-25% CPU time каким-то четырём-пяти процессам, половина из них вообще левые, например eggcups, mozilla-bin...в общем, чушь. Иногда видел, что 100% времени потребляет kswapd, при этом свопинга никакого не происходит.

Включение страшной команды hdparm -d1u1 /dev/hdd или перевешивание сидюка на hdc не помогает? Ну и на hdc надо сказать что-нить подобное. У меня когда-то сильно помогало ...

Дык всё уже и так вроде чики-пуки. Вместе с сидюком никакого девайса не стоит...то есть стоит пустая корзинка от рэка. Рази что на /dev/hdc, действительно, попробовать перевесить. Попробую.


[root@kir kir]# /sbin/hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 14596/255/63, sectors = 234493056, start = 0
[root@kir kir]# /sbin/hdparm /dev/hdb

/dev/hdb:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 3737/255/63, sectors = 60036480, start = 0
[root@kir kir]# /sbin/hdparm /dev/hdc
/dev/hdc: No such device or address
[root@kir kir]# /sbin/hdparm /dev/hdd

/dev/hdd:
HDIO_GET_MULTCOUNT failed: Invalid argument
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
BLKRAGET failed: Invalid argument
HDIO_GETGEO failed: Invalid argument
[root@kir kir]# /sbin/hdparm -d1 -u1 /dev/hdd

/dev/hdd:
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
unmaskirq = 1 (on)
using_dma = 1 (on)

Перевесил сидюк на hdc, (пустую) корзинку от того же шлейфа оторвал. Попробовал запускать readcd в консоли - оно как-то более-менее справляется, и хотя загрузка system достигает почти 100%, система остаётся относительно отзывчивой.

Тем не менее, readcd -с2scan, запущенный в X Window, заставляет всё тормозить по-чёрному. Выключение gkrellm и апплетов в тулбаре, которые рисуют загрузку CPU и сети - не помогает.

Памяти мало? 256Мб?

Шаманство какое-то ... не любит тебя система ;-) Кстати, у тебя атлон - а ядро атлонистое ?;-)

Да. См. пост.

Единственное, что я его лично собирал из src.rpm. Но, впрочем, результат не должен по идее отличаться от того, что лежит на asplinux.ru updates.

Другими словами, зависание процесса происходит при закрытии большого файла?

Почему при закрытии? При чтении. Причем с сидюка. На несколько минут система раком встаёт... Первые 20-30 секунд всё нормально, а потом встаёт...