Můžete to udělat takto:
# sync # (move data, modified through FS -> HDD cache) + flush HDD cache
# echo 3 > /proc/sys/vm/drop_caches # (slab + pagecache) -> HDD (https://www.kernel.org/doc/Documentation/sysctl/vm.txt)
# blockdev --flushbufs /dev/sda
# hdparm -F /dev/sda
# NEXT COMMAND IS NOT FOR BENCHMARKING:
# should be run before unplug, flushes everything possible guaranteed.
# echo 1 > /sys/block/sdX/device/delete
Můžete použít strace, abyste viděli, že se jedná o tři různá systémová volání
Také může být žádoucí vypnout mezipaměť HDD pomocí hdparm, nejste si jisti, co srovnáváte.
V žádném případě nemůžete zabránit tomu, aby HDD uložil do mezipaměti posledních 64/32/16 MB nedávno použitých dat. Chcete-li tuto cache zabít, stačí napsat nějaké množství nul (a vyprázdnit) + přečíst nějaké nesouvisející místo z HDD. To je vyžadováno, protože cache může být rozdělena na část pro čtení a část pro zápis. Poté můžete provést benchmarking HDD.
Zní to, jako byste chtěli příkaz sync nebo funkci sync().
Pokud chcete vyprázdnění mezipaměti disku:echo 3 | sudo tee /proc/sys/vm/drop_caches
Jaké jsou nevýhody linuxových front zpráv?
httpd:Nelze spolehlivě určit plně kvalifikovaný název domény serveru pomocí 127.0.0.1 pro ServerName