HDDs have their internal caching mechanism and I have heard that the Linux kernel uses RAM very effitiently, but to my understanding RAM being only 3-4 times faster doesn't make much sense, so I may be doing or understanding something not entirely right.
does dd actually hit the bare metal drive or is it just reaching the disks cache This is what I am consistently getting from my code doing intesive IO on the RAM drive: // __ write speed test # # time dd if=/dev/zero of="${_RAM_MNT}"/zero bs=4k count=100000 100000+0 Datensätze ein 100000+0 Datensätze aus 409600000 Bytes (410 MB, 391 MiB) kopiert, 0,756943 s, 541 MB/s real 0m0,760s user 0m0,048s sys 0m0,680s # // __ read speed test # # time dd if="${_RAM_MNT}"/zero of=/dev/null bs=4k count=100000 100000+0 Datensätze ein 100000+0 Datensätze aus 409600000 Bytes (410 MB, 391 MiB) kopiert, 0,36381 s, 1,1 GB/s real 0m0,368s user 0m0,016s sys 0m0,344s # // __ my code reports while using a ramdisk: ... // __ |0| files not found or empty! // __ |8616768| bytes in |48| files offset processed (weighted and checked) in |720057| (ms), |11| (bytes/ms) real 12m0,396s user 9m12,596s sys 3m11,524s $ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ _HDD_DIR="logs/ffst_diffs_files" time dd if=/dev/zero of="${_HDD_DIR}"/zero bs=4k count=100000 ls -l "${_HDD_DIR}"/zero time dd if="${_HDD_DIR}"/zero of=/dev/null bs=4k count=100000 rm -fv "${_HDD_DIR}"/zero $ _HDD_DIR="/home/lbrtchx/cmllpz/prjx/kd/java/IO/ffst_bytes/logs/ffst_diffs_files" $ $ time dd if=/dev/zero of="${_HDD_DIR}"/zero bs=4k count=100000 100000+0 Datensätze ein 100000+0 Datensätze aus 409600000 Bytes (410 MB, 391 MiB) kopiert, 1,92086 s, 213 MB/s real 0m1,924s user 0m0,064s sys 0m1,468s $ $ ls -l "${_HDD_DIR}"/zero -rw-r--r-- 1 lbrtchx lbrtchx 409600000 Jun 14 02:07 .../logs/ffst_diffs_files/zero $ $ time dd if="${_HDD_DIR}"/zero of=/dev/null bs=4k count=100000 100000+0 Datensätze ein 100000+0 Datensätze aus 409600000 Bytes (410 MB, 391 MiB) kopiert, 0,521688 s, 785 MB/s real 0m0,525s user 0m0,040s sys 0m0,308s $ # time dd if=/dev/zero of="${_HDD_DIR}"/zero bs=4k count=100000 100000+0 Datensätze ein 100000+0 Datensätze aus 409600000 Bytes (410 MB, 391 MiB) kopiert, 1,94642 s, 210 MB/s real 0m1,954s user 0m0,048s sys 0m1,484s # # ls -l "${_HDD_DIR}"/zero -rw-r--r-- 1 root root 409600000 Jun 14 02:04 /home/lbrtchx/cmllpz/prjx/kd/java/IO/ffst_bytes/logs/ffst_diffs_files/zero # # time dd if="${_HDD_DIR}"/zero of=/dev/null bs=4k count=100000 100000+0 Datensätze ein 100000+0 Datensätze aus 409600000 Bytes (410 MB, 391 MiB) kopiert, 0,735103 s, 557 MB/s real 0m0,744s user 0m0,036s sys 0m0,324s # // __ my code reports while using a hdd access: ... // __ |0| files not found or empty! // __ |8616768| bytes in |48| files offset processed (weighted and checked) in |2412518| (ms), |3| (bytes/ms) real 40m12,727s user 10m42,576s sys 8m41,180s $