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

  • независимость Шотландии

    Для проведения референдума были приглашены независимые наблюдатели из российского изберкома. На референдуме был предложен вопрос: "поддерживаете…

  • (no subject)

    опять звонили форексовцы и предлагали фантастические перспективы - зарабатывать 20-30 долларов в день ($650 в месяц). традиционно протроллих их по…

  • (no subject)

    220 миллионов было на странице "отписаться" Posted via LiveJournal app for Android.

  • 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