Это методы снижания нагрузки на диски. Меня же интересует, скорее, вопрос рассчёта нагрузки. Потому что я сейчас (уже третий день с этой темой вожусь), понимаю, что на самом деле никто реально не может эту нагрузку рассчитать, и все уповают на то, что «авось, хватит».
ОС: Linux/Windows (пишу оба варианта, выбирайте какой приятнее)
Соединение с сервером: SAS
Диски: Около 50 SATA дисков в корзинах.
Набор стандартных операций пользователя: офисная работа, размер открываемых файлов неопределён (какой пришлют прайс, такой и будет).
SQL-база, допустим (на ваш выбор): MSSQL+1C, MYSQL+SUGARCRM.
Количество пользователей — от 30 до 50
Функции построения отчётов: отчёт о продажах с такого-то по такое-то, отчёт о закупках, обороты, кассовые отчёты за произвольные интервалы времени.
Характер базы, допустим, 'mixed', хотя я осмысленно на этот вопрос ответить не могу.
Вот это «допустим» и смущает. Я начинал возиться с тестами с мыслью «ну там всё просто, количество винтов, складываем иопсы, получаем производительность рейда». Оказалось, нет.
Если скорость хоть одного винчестера ниже стандартной — скорость всего рейда будет ниже.
В нормальных аппаратных рейдах, например 3ware, можно в реалтайме видеть IOPS для каждого из дисков, входящих в массив.
Если у вас слайс 16к и вы хотите записать 4М — это затронет 256 стрипов.
в вашем случае — почти все винты.
почти все винты будут позиционировать головы туда-сюда туда-сюда…
ужас…
варианты решения
1.контролер с хооооорошеньшим буфером, и мозгами.
чтобы нормально оптимизировал очереди, и винды, даже при рандом аксесе, действовали внятно
2.увеличивать размеры стрипов
3.как вариант — поднять несколько различных рейдов\групп и ид, чтобы одни таблицы читались с одного набора винтов, а другие — с других.
4.сказать что вам важнее — скорость чтения одного файла или IOPS — ведь можно построить систему которая будет быстро обслуживать одного клиента, а можно постоить так чтобы обслуживало конечно сильно медленее, но десяток тысяч( первая система в этом вариант встанет раком )
хотя это все софистика, 90% решает контролер, остальные 10% — разложения данных по «полочкам»
Сравнение с 10кой в ближайших планах. Но, насколько я понимаю, при большом количестве винтов, скорость записи довольно прилично возрастает. Во-всяком случае, в линейных тестах у меня запись сравнялась с 10ой при примерно 10-12 дисках в массиве.
Слайсы по 16к — 113875кб/с запись, слайсы по 512к — 77031кб/с. Это тест по 256Гб данных. Насколько я понимаю, ключевым тут является то, что при записи 4к в 512 слайс, его приходится пересчитывать весь (читать и писать обратно).
Пока из интересного: 4 RAID6 на рейде и стрип из них с помощью md на линуксе дал максимальную скорость чтения в 850Мб/с, в то же самое время, RAID60 того же размера с 4мя secondary raids дал только 650.
я вообще не понял, зачем ты писал пост.
очевидно же, что значения «максимальный иопс» не существует.
скорее интересен вариант макимум иопсов с диска при латентности до XX милисек.
вот это уже можно померять, но лучше воспользоваться табличкой от поставщиков сан-решений, который посчитали это уже очень давно: «SAS 15k — 180, SAS 10k — 140, SATA 7200 — 80, SATA 5400 — 40»
IOPSы