Феномен «обрыва записи» случается только с SSD-дисками?

Феномен «обрыва записи» случается только с SSD-дисками?

Во-первых, я новичок в дисках, я знаю только основы. Я пытаюсь улучшить производительность программного обеспечения с интенсивным вводом-выводом и мне нужно понять, как работают мои диски SAS с точки зрения скорости чтения и записи.

Я провел очень простые тесты чтения/записи и заметил то, что похоже на «обрыв записи». Диски имеют емкость в несколько ТБ, а машина, к которой они подключены, имеет 630 ГБ ОЗУ. Мои тесты показывают, что после ~200 ГБ интенсивной записи скорость записи падает с ~2000 МБ/с до ~300 МБ/с.

Я предполагаю, что есть какой-то большой буфер или кэш, который заполняется в какой-то момент, и это вызывает снижение скорости записи. Как это на самом деле работает? Как мне рассчитать его размер? Можно ли его настроить?

решение1

300M/s — это совершенно нормальная скорость записи для массива SAS с прямым подключением. Все, что выше — артефакт кэширования операционной системы.

Трудно сказать, не зная, что делает ваше приложение, но во многих случаях использование флага O_DIRECTпри открытии файла даст вам более реалистичное поведение: он заставляет систему обходить кэш и переходить непосредственно к контроллеру диска, тем самым устраняя артефакты кэша и обрывы записи.

Конечно, это достигается за счет снижения производительности записи до реального уровня вашего оборудования ввода-вывода, но в этом-то и суть: вы не можете записывать быстрее, чем позволяет ваша дисковая подсистема, на устойчивой основе: кэширование очень поможет при пиковых нагрузках записи, но не сможет навсегда преодолеть ограничения базового оборудования.

Связанный контент