Da dove viene letture del disco?
-
21-12-2019 - |
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
. Soluzione
AHA!
Raw (8) Come visto qui:
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