Вопрос

Я написал приложение, которое сердцебиение, используя один блок, пишет на диск, используя O_Wronly | O_Sync | O_Direct.

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

Во время тестирования нет читателей.Я могу имитировать его следующим образом:

# dd of=/dev/sda1 bs=512 count=1 if=/dev/zero oflag=direct,dsync
.

на "iostat 1" что-то читает с устройства каждый раз, когда я пишу.

Поведение не меняется, если я добавлю «Skip= 1000» и т. Д.


Поведение изменяется немного, если я использую / dev / sda или / dev / sda1:

sda:

Linux 2.6.32-431.5.1.el6.x86_64 (wiley)  07/31/2014     _x86_64_ (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.01    0.07    0.04    0.00   99.80

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              86.00       672.00         1.00        672          1
.

sda1:

sda              83.00       648.00         1.00        648          1
.

Это было полезно?

Решение

ага!

RAW (8) Как видно здесь:

https://superuser.com/ Вопросы / 242928 / Disable-linux-read-and-picted-cache-on-partition / 464382 # 464382

Написать:

# dd of=/dev/raw/raw1 bs=512 count=1 if=/dev/zero oflag=direct,dsync
.

Iostat:

sda               2.00         0.00         1.00          0          1
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top