Domanda

Ho scritto un'applicazione che i battiti del cuore con scrittura a blocchi singoli su disco utilizzando O_Wronly | o_sync | o_direct.

C'è qualcosa che devo fare per disabilitare la cache del buffer per questo dispositivo?

Durante il test non ci sono lettori.Posso simularlo come segue:

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

per "Iostat 1" Qualcosa sta leggendo dal dispositivo ogni volta che scrivo.

Il comportamento non cambia se aggiungo "skip= 1000", ecc.
Il comportamento cambia un po 'se uso / dev / sda o / 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
.

È stato utile?

Soluzione

AHA!

Raw (8) Come visto qui:

https://superUser.com/ Domande / 242928 / Disabilitazione-Linux-Lettura-e-write-file-cache-on-partition / 464382 # 464382

Scrivi:

# 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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top