Есть некий сервер (Intel® Core(TM)2 CPU 6300 @ 1.86GHz, 3 GB) c Microsoft Windows Server 2003 R2 SP2 (32-bit).
На нем был старенький винт IDE на 80 Гб. Всё работало, и в один прекрасный момент, мы решили сделать Raid 1. Поставили 2 проверенных SATA 2 диска на 500гб (Seagate и WD), сделали зеркалирование разделов стандартными средствами Windows и получили ожидаемый Raid 1.
Проблема в том, что все стало работать намного медленнее.
Ситуация отяжеляется тем, что на сервере работает Oracle Server, MySQL, PostgreSQL, perforce, svn, apache HTTPD, Microsoft IIS… (ну вы поняли). Оперативная память забита на 2.6 — 2.9 из 3.0 Гб. Проц загружен на 2%-20%.
Ставил HDDScan, погонял оба винчестера — чистота и порядок.
Собственно вопросы:
1. Как и чем можно проверить скорость самого raid-а (чтение / запись).
2. Что могло привести к сильному понижению производительности?
3. Как править?
P. S. Сервер очень боевой, сделать такой же — работа на пару недель.
Под рейд всегда берут одинаковые диски (один производитель, одна и та же модель и лучше всего одна и та жа партия). То, что сделали Вы, вообще чудо, что работает! У wd и seagate, скорее всего, разное количество пластин/цилиндров/головок.
+ я добавлю по поводу того куда у Вас делась вся производительность — Вы создали программный рэйд, а значит нагрузка на операции выполняемые над винчестерами такими как запись и чтение ответственен не контроллер, а процессор.
Создайте рэйд на контроллере и разгрузите проц, будет по шустрее.
Во-первых, вероятность одновременного отказа дисков из одной и той же партии в одних и тех же условиях весьма высока, и raid может не спасти. Поэтому как раз рекомендуется брать диски из разных партий, чтобы они одновременно не отказали.
Во-вторых, речь про программный RAID, а его можно сделать из чего угодно. Например, если взять взять три диска — на 80, 160 и 250 Гб — то можно сделать два зеркала суммарным объёмом 240 Гб.
В Linux это делается разбиением дисков на соответствующих размеров разделы, делания mdadm-ом raid-ов из разделов, и по желанию — последующим склеиванием полученных raidов в одну lvm vg.
В Windows все диски переводятся в динамический формат, а потом для нужных томов выбирается желаемый уровень отказоустойчивости. Грузиться система будет только с одного из дисков, но данные хранятся как положено, на всех.
Также подобные фокусы позволяет fake-raid от intel, который Intel Matrix RAID (дисковый формат imsm). Более современный, Intel использует дисковый формат snia ddf, в котором подобные фокусы недоступны (ну или просто Intel их не умеет).
Ну и про процессор. В работе RAID1 = mirror процессор не нагружается никак, от слова вообще. Нечего там считать. Вся «двойная нагрузка» ложится на шину SATA, а SATA-контроллер подключен чере PCIe. По этой шине через DMA (т.е. помимо процессора) пересылается двойной объём данных.
Пропускная способность шины PCIe x1 — 2 гбит/с в одну сторону, а там скорее всего x4. При этом, винты вряд ли умеют работать быстрее чем 100 мбайт/сек. Соответственно, шину просадить они не смогут.
И вывод — тормоза могут быть из-за того, что винты существенно разные по свойствам, и ОС не удаётся так разрулить операции ввода/вывода, чтобы всё не тормозило, либо из-за более прозаических причин — фрагментация ФС, директории с огромным числом файлов, нехватка ОЗУ и жёсткий своппинг и т. п…
Нужно смотреть загрузку дисковой подсистемы, кажется, Sysinternals Process Explorer умеет.
Ну что за позор 3 гигабайта памяти для сервера, при цене 4 гиговой плашки меньше 2000 рублей.
Любой тест для дисков подойдет вам, тот же эверест.
Что значит сделать такой же пару недель?
Клонируете диски и запускаете новый сервер, на аналогичной платформе, дело нескольких часов.
Посмотрите perfmon виндовый ещё.
Более 3 гигабайт не осилит для 32-битной архитектуры, учим мат. часть
Клонирование дисков не имеет смысл, нужна свежая 64-битная винда, а не повторять проблемы.
я конечно извиняюсь, merlin_rterm написал вам почти всё на что нужно обратить внимание, но я все же спрошу… вы пишете что HDDScan'om гоняли свои винты… у них со SMART всё в порядке? проверьте. И я ещё предложил бы такой примитивный тест — разбейте зеркало, и посмотрите — упадет ли нагрузка. Если да — это накладные расходы на soft-RAID. Если нет — проблема в винтах/фрагментации/неверный настройках софта/etc. В идеале попробовать оба винта оставлять основными после разбития зеркала. Кстати! а у вас ресинхронизация прошла?! может у вас ресинхронизация идёт, а вы нервничаете за производительность?