форматированная пропускная способность SSD при последовательной записи с флагом O_SYNC

У меня есть внутренний SSD Western Digital на 500 ГБ (WDS500G1B0A). В его спецификации заявлена ​​скорость последовательной записи 525 Мбит/с. Я отформатировал этот SSD с помощью f2fs.

Затем я выполнил последовательную запись размером 4 КБ в файловую систему, используя флаг O_SYNC (чтобы гарантировать, что записи будут зафиксированы на диске, когда запись вернется). Моя тестовая программа однопоточная.

Я понимаю, что пропускная способность будет представлять собой комбинацию операций ввода-вывода в секунду и показателей задержки базового твердотельного накопителя. Какую пропускную способность я должен ожидать при таком исполнении? Я получил только около 8k IOPS.

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

Я также упускаю что-то еще с форматированием SSD и т. Д.?

Когда я запускаю ту же программу без флага O_SYNC на том же отформатированном SSD, я получаю в 10 раз лучшие результаты (около 80 тыс. операций ввода-вывода в секунду). Какую дополнительную настройку или тестирование я могу сделать, чтобы лучше понять, что происходит?


person Sameer Mahajan    schedule 19.08.2017    source источник


Ответы (1)


Позвольте мне сначала признать, что я был сбит с толку 80 000 операций ввода-вывода в секунду без флага O_SYNC, поскольку они случайно совпали с IOPS SSD (размер блока 525 МБ / 4 КБ ~ 100 000 операций ввода-вывода в секунду). Я должен был придерживаться спецификации пропускной способности 525 МБ для моего анализа. Я заметил, что пропускная способность SSD действительно приближается к этой спецификации даже с флагом O_SYNC, хотя и с очень большим размером блока (около 16 МБ), что понятно.

Поскольку без флага O_SYNC Linux должен выполнять запись в буферы ядра в памяти, мы не можем использовать его для базового анализа производительности ввода-вывода SSD. Это должно зависеть от других факторов аппаратного обеспечения, таких как память, ЦП и т. д. Например. на более мощном сервере я мог бы увидеть даже 2000 МБ/с, что нереально на уровне SSD.

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

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

person Sameer Mahajan    schedule 29.08.2017