LINUX.ORG.RU
ФорумTalks

Пишу из горящего танка

 ,


2

3
$ time echo ggg > test.txt

real	0m0.000s
user	0m0.000s
sys	0m0.000s
$ time cat test.txt
ggg

real	0m0.003s
user	0m0.000s
sys	0m0.000s
$ time rm test.txt

real	2m7.103s
user	0m0.000s
sys	0m0.000s

Покупал SSD в расчёте решить проблемы с производительностью дисковой подсистемы. Третий месяц не мог нарадоваться. А сегодня сделал git svn clone одного здоровенного проекта, да ещё со всей историей. Git забил ввод/вывод, сделав (минут на 20) работу других приложений совершенно невозможной.

P.S.
Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
OCZ Agility 3
Планировщик i/o отключён (elevator=noop в параметрах ядра)

Докупи оперативки и скидуй все в ОЗУ.

ymuv ★★★★ ()
Ответ на: комментарий от ymuv

А на ЖД скидывай уже архивы, быстрее будет.

ymuv ★★★★ ()

OCZ Agility 3

а нечего жадничать было.

JFreeM ★★★☆ ()
Ответ на: комментарий от JFreeM

Тычо, зато в бенчмарках всех рвет... первые пару дней.

AlexVIP ()

hdd

time echo ggg > test.txt ; time cat test.txt ; time rm test.txt

real	0m0.056s
user	0m0.000s
sys	0m0.001s
ggg

real	0m0.284s
user	0m0.001s
sys	0m0.002s

real	0m0.114s
user	0m0.001s
sys	0m0.002s
xtraeft ★★☆☆ ()

Хомяк на ssd? Brilliant bastard!

X10Dead ★★★★★ ()

Планировщик i/o отключён (elevator=noop в параметрах ядра)

Во-первых, noop - это тоже планировщик I/O который выполняет определённые функции, так что твоя фраза содержит взаимоисключающие параграфы. Во-вторых, зачем ты выбрал именно noop? Ты точно понимаешь что делает этот планировщик, а чего он не делает?

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)

Фанаты SSD такие фанаты SSD, что рядом с ними фанаты SSD просто фанаты HDD...

no-dashi ★★★★★ ()
Ответ на: комментарий от dk-

Решать хардварную немощность — «виндузятский подход»?

Deleted ()

Ты кверен, что именно ввод-вывод, а не своп?

Quasar ★★★★★ ()
Ответ на: hdd от xtraeft

Нет, ну когда система не загружена:

time echo ggg > test.txt ; time cat test.txt ; time rm test.txt

real	0m0.000s
user	0m0.000s
sys	0m0.000s
ggg

real	0m0.002s
user	0m0.004s
sys	0m0.000s

real	0m0.001s
user	0m0.000s
sys	0m0.000s
prozium ★★ ()
Ответ на: комментарий от X10Dead

Это ноутбук. Там кроме SSD ничего нет. А вся файлопомойка — по NFS.

prozium ★★ ()
Ответ на: комментарий от Quasar

именно ввод-вывод, а не своп?

Да. Свопа нет, памяти 8 Гб. Да и система, в общем-то, не тормозит. Всё, что не требует операций ввода-вывода — работает штатно.

prozium ★★ ()
Ответ на: комментарий от Deleted

noop - это тоже планировщик I/O который выполняет определённые

Хорошо, я был неправ.

Ты точно понимаешь что делает этот планировщик, а чего он не делает?

Нет, не понимаю. noop выбрал бездумно следуя советам какого-то howto, так что, разумеется, ССЗБ. А он к проблеме действительно причастен?

prozium ★★ ()
Ответ на: комментарий от prozium

А он к проблеме действительно причастен?

Не факт, но возможно. Noop никак не учитывает ситуации, когда один процесс умудряется полностью забить очередь на IO-запросы и другим процессам не остаётся в ней места.

Deleted ()
$ time echo ggg > test.txt ; time cat test.txt ; time rm test.txt

real    0m0.000s
user    0m0.000s
sys     0m0.000s
ggg

real    0m0.003s
user    0m0.001s
sys     0m0.002s

real    0m0.003s
user    0m0.000s
sys     0m0.002s

// HDD

carasin ★★★★★ ()
Последнее исправление: carasin (всего исправлений: 1)
Ответ на: комментарий от carasin

Не исключено, что при простое оно что у меня, что у вас, работает с буфером. В таком случае, независимо от типа носителя, операция будет мгновенной.

prozium ★★ ()
Ответ на: комментарий от prozium

Может быть, т.к. у HDD кэш 16 МиБ и ФС — ext4 (с дефолтными опциями монтирования).

carasin ★★★★★ ()

а если смонтировать без барьеров? ;)

stevejobs ★★★★☆ ()

Зайди на багзиллу в обсуждение 12309. Там просто мимопроходившие и разработчики на полном серьезе говорили, почему так происходит, и почему в лайнаксе без -ck и подобных патчей без бага жить нельзя (а некоторым даже нравится). Сделай это сам и до того, как придет мегабаксик и объяснит тебе тонкими абсолютно прозрачными намеками, что баг в природе не существует, а его вымышленная реальность - единственное настоящее, в отличие от.

GateKeeper ★★ ()
Ответ на: комментарий от GateKeeper

Мой баг — не 12309. Я выше писал, что система не теряет отзывчивости во всём, что не касается i/o.

prozium ★★ ()
Ответ на: комментарий от Deleted

По подсказке ArtKun вернул дефолтный (которым оказался deadline). Провёл следственный эксперимент — последствия те же.

В dmesg обнаружил (многократные) сообщения о констатации проблемы, типа такого:

[ 3239.160209] INFO: task rm:4035 blocked for more than 120 seconds.
[ 3239.160212] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 3239.160214] rm              D ffff88024fa139c0     0  4035   4034 0x00000000
[ 3239.160220]  ffff88023da8bc68 0000000000000082 ffff880161e9c500 ffff88023da8bfd8
[ 3239.160226]  ffff88023da8bfd8 ffff88023da8bfd8 ffffffff81c13460 ffff880161e9c500
[ 3239.160232]  ffff88023da8bc58 ffff880243153000 ffff880243153068 ffff880243153024
[ 3239.160239] Call Trace:
[ 3239.160246]  [<ffffffff81680b89>] schedule+0x29/0x70
[ 3239.160253]  [<ffffffff81266e89>] start_this_handle.isra.8+0x1a9/0x480
[ 3239.160260]  [<ffffffff810767d0>] ? finish_wait+0x80/0x80
[ 3239.160267]  [<ffffffff81267368>] jbd2__journal_start+0xc8/0x110
[ 3239.160274]  [<ffffffff81228e84>] ? ext4_unlink+0x64/0x310
[ 3239.160280]  [<ffffffff812673c3>] jbd2_journal_start+0x13/0x20
[ 3239.160286]  [<ffffffff8123ce6e>] ext4_journal_start_sb+0x6e/0x1b0
[ 3239.160294]  [<ffffffff8105f1f5>] ? inode_capable+0x15/0x20
[ 3239.160301]  [<ffffffff81228e84>] ext4_unlink+0x64/0x310
[ 3239.160309]  [<ffffffff8118d2c4>] ? inode_only_permission+0x64/0xe0
[ 3239.160316]  [<ffffffff8118d354>] ? inode_permission+0x14/0x50
[ 3239.160321]  [<ffffffff8118d7de>] vfs_unlink+0x9e/0x120
[ 3239.160327]  [<ffffffff81191127>] do_unlinkat+0x1a7/0x1d0
[ 3239.160335]  [<ffffffff8117f656>] ? filp_close+0x66/0xa0
[ 3239.160340]  [<ffffffff81191cbb>] sys_unlinkat+0x1b/0x50
[ 3239.160347]  [<ffffffff81689d29>] system_call_fastpath+0x16/0x1b
$ cat /sys/block/sda/queue/iosched/read_expire 
500
$ cat /sys/block/sda/queue/iosched/write_expire 
5000

Команда, приводящая к такому безобразию в поведении системы:

git svn clone -r 786 http://opencores.org/ocsvn/openrisc/openrisc/
Выкачивает 6 Гб мелких файлов, а потом начинает ими манипулировать. Если не боитесь положить opencores.org или убить винт — можете попробовать. Интересно, что даже после того, как git убит, система ещё несколько минут не может просраться.

Где-нибудь (например, в /sys/block/sda/queue/* ) можно посмотреть максимальный размер очереди и её загруженность?

prozium ★★ ()
Ответ на: комментарий от ymuv

Докупи оперативки и скидуй все в ОЗУ

Следующая тема будет: [12309][ramdisk] :)

KRoN73 ★★★★★ ()
Ответ на: hdd от xtraeft
$ time echo ggg > test.txt ; time cat test.txt ; time rm test.txt

real	0m0.000s
user	0m0.000s
sys	0m0.000s
ggg

real	0m0.001s
user	0m0.000s
sys	0m0.000s

real	0m0.000s
user	0m0.000s
sys	0m0.000s

У кого короче? ;)

KRoN73 ★★★★★ ()
Ответ на: комментарий от X10Dead

Хомяк на ssd? Brilliant bastard!

А нафига SSD, если хомяк на нём не держать?

KRoN73 ★★★★★ ()
Ответ на: комментарий от AlexVIP

Да успокойся ты, сыпется твой говносендфорс

Ну и хрен с ним — если это действительно так — просто куплю новый SSD (возможно — на другом контроллере). Но пока источник проблемы для меня не очевиден. Если есть аргументы, отличные от неприязни к бренду — прошу озвучить.

prozium ★★ ()
Ответ на: комментарий от prozium

Похожие ошибки с файловой системой с этим же контроллером вылетают под вендой, только в виде синего экрана. Как вариант:

1. Поменять кабель 2. Сбекапить данные и прошить накопитель.

AlexVIP ()

Диск нормальный? Чего-нибудь подобного нет:

grep -E 'ata3.*UDMA' dmesg | uniq -f2
[    0.818249] ata3: SATA max UDMA/133 cmd 0xc400 ctl 0xc080 bmdma 0xb880 irq 19
[    1.012253] ata3.01: ATA-7: SAMSUNG HD103SI, 1AG01118, max UDMA7
[    1.020257] ata3.01: configured for UDMA/133
[  306.679083] ata3.01: limiting speed to UDMA/100:PIO4
[  307.264266] ata3.01: configured for UDMA/100
[13614.040263] ata3.01: configured for UDMA/100
[30037.313689] ata3.01: limiting speed to UDMA/33:PIO4
[30037.508250] ata3.01: configured for UDMA/33

at ★★ ()

комп загружен ремуксом жирного блурея в 8 потоков. iotop бешенный. hdd 2 тб на 5400 оборотов (7 лет от роду):

time echo ggg > test.txt ; time cat test.txt ; time rm test.txt

real	0m0.000s
user	0m0.000s
sys	0m0.000s
ggg

real	0m0.001s
user	0m0.000s
sys	0m0.001s

real	0m0.001s
user	0m0.000s
sys	0m0.000s

punya ★★ ()
Ответ на: комментарий от at

Не знаю, что является признаком ненормальности диска (limiting speed?). Вот всё, что есть про него в dmesg:

$ dmesg | grep 'ata1'
[    0.653136] ata1: SATA max UDMA/133 abar m2048@0xe1608000 port 0xe1608100 irq 41
[    0.972342] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    0.984308] ata1.00: ATA-8: OCZ-AGILITY3, 2.22, max UDMA/133
[    0.984326] ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    0.994079] ata1.00: configured for UDMA/133
prozium ★★ ()
Ответ на: комментарий от punya

Выше уже решили, что оно, скорее всего, работает в буфере.

prozium ★★ ()
Ответ на: комментарий от prozium

ну тогда

time echo ggg > test.txt ; time cat test.txt ; time rm test.txt ; time sync
real	0m0.000s
user	0m0.000s
sys	0m0.000s
ggg

real	0m0.001s
user	0m0.000s
sys	0m0.001s

real	0m0.001s
user	0m0.000s
sys	0m0.000s

real	0m0.236s
user	0m0.000s
sys	0m0.004s

punya ★★ ()
Ответ на: комментарий от stevejobs

О каких барьерах речь?

Сейчас опции монтирования такие:

discard,relatime,nodiratime,defaults

prozium ★★ ()
Ответ на: комментарий от prozium

На диске, который я показал плавает скорость ввода/вывода. Когда он переходит в режим UDMA/33 вся система замораживается. Баг аппаратный (проверено), но его очень легко принять за софтверный.

at ★★ ()
Ответ на: комментарий от prozium

там был смайлик, насчет того, что так делать на надо ))

-o barrier=0

в dmesg при этом: EXT4-fs: barriers disabled

хотя отключение стопудов добавит скорости на чем угодно, что пишет много мелких файлов

stevejobs ★★★★☆ ()

OCZ Agility 3

Он у тебя случаем в SATA-1 не встал, проверь. Если да, родным линуксовым LiveCD вставляй принудительно SATA-2 и радуйся.

yu-boot ★★ ()
Ответ на: комментарий от KRoN73
> time echo ggg > test.txt ; time cat test.txt ; time rm test.txt
0.000u 0.000s 0:00.00 0.0%	0+0k 0+1io 0pf+0w
ggg
0.000u 0.000s 0:00.00 0.0%	0+0k 0+0io 0pf+0w
0.000u 0.000s 0:00.00 0.0%	0+0k 0+0io 0pf+0w
iZEN ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.