amarao (amarao_san) wrote,
amarao
amarao_san

Category:

Об истинной производительности

Сейчас в рассылке ceph'а кто-то начал бухтеть по поводу того, что 530 интелы фиговее 520, слово за слово, и там всплыла крайне любопытная вещь, которую я раньше не знал.

O_DIRECT всего лишь стремится минимизировать влияние кешей на IO, но не даёт никаких гарантий о синхронности операций. Для синхронности данных есть O_DSYNC, а для сихнронности всего и вся - O_SYNC. Есть упрощённая версия O_RSYNC, которая гарантирует, что все читаемые данные читаются с диска, а не из кешей (то есть даёт ОС пространство для манёвра с асинхронной записью).

Таким образом, степень фашизма:

O_DIRECT - без кешей
O_DIRECT|O_DSYNC|O_RSYNC - всё, что читается, записано на диск.
O_DIRECT|O_DSYNC - всё, что пишется, пишется синхронно на диск, метаданные обновляются асинхронно.
O_DIRECT|O_SYNC - все данные и метаданные пишутся и читаются без участия кешей, метаданные обновляются синхронно.

В принципе, все эти команды не контролируют кеши нижележащих устройств, однако, линукс посылает flush (CMD_FLUSH) на устройства с целью таки добиться записи.

Таким образом, правильная строчка для trueъ dd - не oflag=direct, а oflag=direct,dsync.

Разница (на местной ssd'шке в ноуте):
$ sudo dd if=/dev/zero of=/test oflag=direct bs=64k  count=1000
1000+0 records in
1000+0 records out
65536000 bytes (66 MB) copied, 0.809628 s, 80.9 MB/s
$ sudo dd if=/dev/zero of=/test oflag=direct,dsync bs=64k  count=1000
1000+0 records in
1000+0 records out
65536000 bytes (66 MB) copied, 8.2422 s, 8.0 MB/s
Tags: block storage, linux block devices, linux kernel, схд
Subscribe

  • А вот вам пост об исторической нелогичности

    Вот есть у меня файл /etc/default/grub.d/unified.cfg для включения unified cgroups для systemd. А вот вопрос (ответ на который я хорошо знаю, но…

  • апгрейдовое

    А вот шифрованный home я переносил вообще ленивым образом - тупо сделал dd для раздела и поправил путь к устройству для кастомного pam_exec-скрипта.…

  • VM VS baremetal

    Наконец-таки у меня появились цифры для обсуждения этого вопроса в отрыве от IO. Известно, что IO на виртуалках всегда медленее, чем на bare-metal, и…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments