[Comm] ALS4.0. Всё пишется в кеш и на диск не сбрасывается.

Дмитрий =?iso-8859-1?q?ddv_=CE=C1_nevod=2Eru?=
Ср Фев 27 08:54:57 MSK 2008


Дмитрий пишет:
> Доброе утро.
>
> Следующая проблема.
>
> Имеется машина G3 Opt/2212 HE Dual Core NHP SATA RAM 8GB HDD 80GB
> На ней стоял старый AL с ядром ovz 32-х битный. Всё работало вроде 
> нормально.
>
> Вчера установил ALS 4.0 x86_64. Вроде всё завелось, настроил ftp. И по 
> ftp стал на него заливать образ DVD 8Гб. На 4х Гб начались жуткие 
> тормоза и в систему было войти невозможно и перезагружаться она тоже 
> нежелала. До этого файлика я сделал образ CD диска 600Мб с помощью dd. 
> Образ залился нормально, контрольная сумма совпала, он примонтировался 
> без проблем и работал. После того как было я его перезапустил путём 
> отключения питания, я обнаружил что образ CD весит всего 200Мб. После 
> некоторых экспериментов я пришёл к выводу что всё пишется в буферный-кеш 
> диска, а на диск не сбрасывается. Как только оперативная память занята 
> на 4 Гб так все процессы начинают зависать, перезагрузить невозможно, 
> убить процессы так же невозможно.
>
> Ранее у этого дистрибутива я такой не наблюдал, уже стоит на многих машинах.
>
> Что делать?
> _______________________________________________
> community mailing list
> community на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/community
Попробовал набрать strace sync после того, как что-нибудь запишу на диск 
и наблюдаю следующую картину:
......................................
open("/usr/lib64/locale/ru_RU.UTF-8/LC_NUMERIC", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/lib64/locale/ru_RU.utf8/LC_NUMERIC", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=58, ...}) = 0
mmap(NULL, 58, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2aaaaabaf000
close(4)                                = 0
open("/usr/lib64/locale/ru_RU.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No 
such file or directory)
open("/usr/lib64/locale/ru_RU.utf8/LC_CTYPE", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=238464, ...}) = 0
mmap(NULL, 238464, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2aaaaabb0000
close(4)                                = 0
sync(

ну очень долго висит и затем благополучно завершает работу:
)                                  = 0
close(1)                                = 0
exit_group(0)                           = ?
Process 2050 detached


т.е. зависает на системном вызове sync().

Тоже самое с hdparm -t /dev/sda и hdparm -t /dev/sdb, но только если 
что-то записать предварительно на диск, при этом абсолютно не важно на 
какой диск производилась запись. Если ничего не писать то отрабатывает 
мгновенно, т.е. нет зависания на системном вызове sync().

Пробую тоже самое на другой машине с этим же дистрибутивом и никаких 
зависаний на sync().



Подробная информация о списке рассылки community