Gentoo Archives: gentoo-user-ru

From: Alex Efros <powerman@××××××××.name>
To: gentoo-user-ru@l.g.o
Subject: Re: [gentoo-user-ru] Re: [gentoo-user-ru] Re: [gentoo-user-ru] Re[2]: [gentoo-user-ru] Re: Насущный вопрос о тормозах при интенсивном I/O
Date: Tue, 02 Mar 2010 19:21:14
Message-Id: 20100302192042.GB2604@home.power
In Reply to: [gentoo-user-ru] Re: [gentoo-user-ru] Re: [gentoo-user-ru] Re[2]: [gentoo-user-ru] Re: Насущный вопрос о тормозах при интенсивном I/O by Alexander Tiurin
1 Hi!
2
3 On Tue, Mar 02, 2010 at 06:26:09PM +0300, Alexander Tiurin wrote:
4 > >> Что касается скрипта для сбора статистики - думаю, lshw более чем
5 > >> достаточно.
6 > > А как lshw будет генерировать "характерную" и наиболее наглядную для
7 > > обсуждаемоей проблемы нагрузку на систему ввода/вывода?
8
9 lshw не генерирует нагрузку, он соберёт инфу по установленному железу
10
11 > Для генерации нагрузки предется как-то определяться в виде
12 > последовательности заранее договоренных действий.
13
14 В комментариях в багзилле ядра приводилось несколько вариантов генерации
15 нагрузки. Сложность ещё и в том, что там мешанина нескольких разных багов.
16 Часть этих багов более-менее пофиксили, поэтому многие отмечают улучшения
17 производительности на ядрах >=2.6.31. Но тот баг, который был у меня, пока
18 не отловили.
19
20 И этот баг можно протестировать достаточно просто: при копировании больших
21 файлов (желательно, объёмом на 1GB больше доступной RAM чтобы исключить
22 кеширование) чётко наблюдаются два эффекта - крайне низкая скорость и
23 высокий iowait (ну и тормозит интерфейс, конечно, но это сложно замерить в
24 тестах).
25
26 Соответственно, самый простой вариант теста - запуск dd на чтение, запись,
27 или чтение/запись. Ещё можно запустить несколько dd параллельно.
28
29 Пример:
30
31 # hdparm -t /dev/sda
32
33 /dev/sda:
34 Timing buffered disk reads: 332 MB in 3.01 seconds = 110.45 MB/sec
35
36 # dd if=/dev/zero of=test1 bs=1M count=5000
37 5000+0 записей считано
38 5000+0 записей написано
39 скопировано 5242880000 байт (5.2 GB), 53.1426 c, 98.7 MB/c
40
41 # dd if=test1 of=/dev/null bs=1M
42 5000+0 записей считано
43 5000+0 записей написано
44 скопировано 5242880000 байт (5.2 GB), 49.6235 c, 106 MB/c
45
46 # dd if=test1 of=test2 bs=1M
47 5000+0 записей считано
48 5000+0 записей написано
49 скопировано 5242880000 байт (5.2 GB), 117.685 c, 44.5 MB/c
50
51 На старом винте (с тормозами), у меня hdparm выдавал примерно то же самое
52 (80-100 MB/sec), а вот dd выдавал максимум 20 MB/sec, а иногда и 3 MB/sec
53 (причём это в одну сторону, чтение либо запись, а не копирование!).
54
55 Что касается высокого iowait, то в моём случае он не изменился - `vmstat 1`
56 по-прежнему показывает iowait порядка 40-60%, что на старом винте с
57 тормозами что на новом без тормозов. А вот интерфейс на новом винте не
58 тормозит, так что, получается, высокий iowait это ещё не показатель
59 тормозов интерфейса.
60
61 В результате, в моём случае есть два чётких критерия: скорость работы dd и
62 тормоза интерфейса. Как измерить второе не ясно, зато первое проверяется
63 элементарно. Я бы предложил для начала ограничиться сбором статистики по
64 железу только у тех, у кого наблюдаются полностью идентичные моим симптомы -
65 т.е. тормоза dd - чтобы попытаться изолировать один баг.
66
67 --
68 WBR, Alex.

Replies