
āĻāĻ āύāĻŋāĻŦāύā§āϧā§, āĻāĻŽāϰāĻž I/O āϏāĻžāĻŦāϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻāĻŋāĻā§ āϏā§āĻā§āώā§āĻŽāϤāĻž āĻāĻŦāĻ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻžāϰ āĻāĻĒāϰ āϤāĻžāĻĻā§āϰ āĻĒā§āϰāĻāĻžāĻŦ āĻĻā§āĻāĻŦāĨ¤
āĻāϝāĻŧā§āĻ āϏāĻĒā§āϤāĻžāĻš āĻāĻā§ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϰāĻļā§āύā§āϰ āĻŽāϧā§āϝ⧠āĻĒāĻĄāĻŧā§āĻāĻŋāϞāĻžāĻŽ āĻā§āύ āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰ⧠NVMe āĻ āύā§āϝ āϏāĻžāϰā§āĻāĻžāϰ⧠SATA āĻĨā§āĻā§ āϧā§āϰāĨ¤ āĻāĻŽāĻŋ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āĻĻā§āĻā§āĻāĻŋ āĻāĻŦāĻ āĻŦā§āĻāϤ⧠āĻĒā§āϰā§āĻāĻŋ āϝ⧠āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻļāϞ āĻĒā§āϰāĻļā§āύ āĻāĻŋāϞ: NVMe āĻāĻŋāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻ āĻāĻļ āĻĨā§āĻā§, āĻāĻŦāĻ SSD āĻāĻŋāϞ āϏāĻžāϰā§āĻāĻžāϰ āĻŦāĻŋāĻāĻžāĻ āĻĨā§āĻā§ā§ˇ
āϏā§āĻĒāώā§āĻāϤāĻ, āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻŦāĻŋāĻāĻŋāύā§āύ āĻŦāĻŋāĻāĻžāĻā§āϰ āĻĒāĻŖā§āϝāĻā§āϞāĻŋāϰ āϤā§āϞāύāĻž āĻāϰāĻž āϏāĻ āĻŋāĻ āύāϝāĻŧ, āϤāĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāϤ āĻāϤā§āϤāϰ āύāϝāĻŧāĨ¤ āĻāĻŽāϰāĻž āĻŽā§āϞ āĻŦāĻŋāώāϝāĻŧāĻā§āϞāĻŋ āĻ
āϧā§āϝāϝāĻŧāύ āĻāϰāĻŦ, āĻĒāϰā§āĻā§āώāĻž-āύāĻŋāϰā§āĻā§āώāĻž āĻāϰāĻŦ āĻāĻŦāĻ āĻāϤā§āĻĨāĻžāĻĒāĻŋāϤ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ āĻĻā§āĻŦāĨ¤
fsync āĻāĻŋ āĻāĻŦāĻ āĻā§āĻĨāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ
āĻĄā§āϰāĻžāĻāĻā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻā§āϰ āĻāϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύā§āϰ āĻāύā§āϝ, āĻĄā§āĻāĻž āĻŦāĻžāĻĢāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āĻ āϰā§āĻĨāĻžā§, āĻĄā§āϰāĻžāĻāĻā§ āĻŦāĻžāĻĢāĻžāϰā§āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āϏā§āϝā§āĻ āĻāĻĒāϏā§āĻĨāĻŋāϤ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻĻā§āĻŦāĻžāϝāĻŧā§ āĻŽā§āĻŽāϰāĻŋāϤ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āϏā§āϝā§āĻā§āϰ āĻŽāĻžāύāĻĻāĻŖā§āĻĄ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻŦāĻ āĻĄā§āϰāĻžāĻāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻĒāĻžāĻāϝāĻŧāĻžāϰ āĻŦā§āϝāϰā§āĻĨāϤāĻžāϰ āĻā§āώā§āϤā§āϰā§, āĻŦāĻžāĻĢāĻžāϰā§āϰ āϏāĻŽāϏā§āϤ āĻĄā§āĻāĻž āĻšāĻžāϰāĻŋāϝāĻŧā§ āϝāĻžāĻŦā§āĨ¤
āĻāĻŽāύ āĻ āύā§āĻāĻā§āϞāĻŋ āĻāĻžāĻ āϰāϝāĻŧā§āĻā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāĻā§ āύāĻŋāĻļā§āĻāĻŋāϤ āĻšāϤ⧠āĻšāĻŦā§ āϝ⧠āĻĢāĻžāĻāϞā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻĄā§āϰāĻžāĻāĻā§ āϞā§āĻāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻŦāĻžāĻĢāĻžāϰ⧠āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āύāϝāĻŧāĨ¤ POSIX-compliant fsync āϏāĻŋāϏā§āĻā§āĻŽ āĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻ āύāĻŋāĻļā§āĻāϝāĻŧāϤāĻž āĻĒāĻžāĻāϝāĻŧāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ fsync āĻāϞ āĻŦāĻžāĻĢāĻžāϰ āĻĨā§āĻā§ āĻĄā§āϰāĻžāĻāĻā§ āϞāĻŋāĻāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰā§āĨ¤
āĻāĻāĻāĻŋ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āϏāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāĻāĻžāϰ⧠āĻāĻāĻāĻŋ āĻā§āϤā§āϰāĻŋāĻŽ āĻāĻĻāĻžāĻšāϰāĻŖ āϏāĻš āĻŦāĻžāĻĢāĻžāϰā§āϰ āĻĒā§āϰāĻāĻžāĻŦ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āϝāĻžāĻāĨ¤
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
int main(void) {
/* ĐŅĐēŅŅваĐĩĐŧ ŅаКĐģ answer.txt ĐŊа СаĐŋиŅŅ, ĐĩŅĐģи ĐĩĐŗĐž ĐŊĐĩŅ -- ŅОСдаŅĐŧ */
int fd = open("answer.txt", O_WRONLY | O_CREAT);
/* ĐаĐŋиŅŅваĐĩĐŧ ĐŋĐĩŅвŅĐš ĐŊĐ°ĐąĐžŅ Đ´Đ°ĐŊĐŊŅŅ
*/
write(fd, "Answer to the Ultimate Question of Life, The Universe, and Everything: ", 71);
/* ĐĐĩĐģаĐĩĐŧ вид, ŅŅĐž ĐŋŅОвОдиĐŧ вŅŅиŅĐģĐĩĐŊĐ¸Ņ Đ˛ ŅĐĩŅĐĩĐŊиĐĩ 10 ŅĐĩĐēŅĐŊĐ´ */
sleep(10);
/* ĐаĐŋиŅŅваĐĩĐŧ ŅĐĩСŅĐģŅŅĐ°Ņ Đ˛ŅŅиŅĐģĐĩĐŊиК */
write(fd, "42n", 3);
return 0;
}āĻŽāύā§āϤāĻŦā§āϝāĻā§āϞāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϰ āĻāϰā§āĻŽā§āϰ āĻā§āϰāĻŽāĻāĻŋ āĻāĻžāϞāĻāĻžāĻŦā§ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰā§āĨ¤ āĻā§āĻā§āϏāĻ "āĻā§āĻŦāύā§āϰ āĻĒā§āϰāϧāĻžāύ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ, āĻŽāĻšāĻžāĻŦāĻŋāĻļā§āĻŦ āĻāĻŦāĻ āϏāĻŦāĻāĻŋāĻā§" āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻžāĻĢāĻžāϰ āĻāϰāĻž āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ "āĻāĻŖāύāĻž" āĻāϞāĻžāĻāĻžāϞā§āύ āϰāĻŋāϏā§āĻ āĻŦā§āϤāĻžāĻŽ āĻāĻŋāĻĒā§ āϏāĻžāϰā§āĻāĻžāϰāĻāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞ⧠āĻāϰā§āύ āϤāĻŦā§ āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻžāϞāĻŋ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§, āĻĒāĻžāĻ ā§āϝ āĻā§āώāϤāĻŋ āĻāĻāĻāĻŋ āϏāĻŽāϏā§āϝāĻž āύāϝāĻŧ, āϤāĻžāĻ fsync āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻžāĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāĻ āĻāĻļāĻžāĻŦāĻžāĻĻ āĻāĻžāĻ āĻāϰ⧠āύāĻž.
āĻĄāĻžāĻāĻžāĻŦā§āϏāĻā§āϞāĻŋ āĻšāϞ āĻāĻāĻŋāϞ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āϝāĻž āĻāĻāĻ āϏāĻŽāϝāĻŧā§ āĻ āύā§āĻ āĻĢāĻžāĻāϞā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰā§, āϤāĻžāĻ āϤāĻžāϰāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻšāϤ⧠āĻāĻžāϝāĻŧ āϝ⧠āϤāĻžāϰāĻž āϝ⧠āĻĄā§āĻāĻž āϞāĻŋāĻāĻŦā§ āϤāĻž āĻĄā§āϰāĻžāĻāĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāĻŦā§, āϝā§āĻšā§āϤ⧠āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻŽāϧā§āϝ⧠āĻĄā§āĻāĻžāϰ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāϤāĻž āĻāĻāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤ āĻĄā§āĻāĻžāĻŦā§āϏāĻā§āϞāĻŋ āϏāĻŽāϏā§āϤ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϞā§āύāĻĻā§āύ āϰā§āĻāϰā§āĻĄ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āϝ⧠āĻā§āύāĻ āϏāĻŽāϝāĻŧ āĻŦāĻŋāĻĻā§āϝā§ā§ āĻŦāĻŋāĻā§āϰāĻžāĻā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤāĨ¤ āĻāĻ āĻāĻāϰāĻŖ āĻāĻĒāύāĻžāĻā§ āĻā§āϰāĻŽāĻžāĻāϤ āĻĒā§āϰāĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ fsync āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰā§āĨ¤
fsync āĻāϰ āĻāύ āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻā§ āĻā§ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰā§
āϏāĻžāϧāĻžāϰāĻŖ I/O-āĻāϰ āϏāĻžāĻĨā§, āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻĄāĻŋāϏā§āĻ āϝā§āĻāĻžāϝā§āĻāĻā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§, āϝā§āĻšā§āϤ⧠āĻŽā§āĻŽāϰāĻŋ āĻļā§āϰā§āĻŖāĻŋāĻŦāĻŋāύā§āϝāĻžāϏ⧠āĻŦāĻšāĻŋāϰāĻžāĻāϤ āĻĄā§āϰāĻžāĻāĻāĻā§āϞāĻŋ āϏāĻŦāĻā§āϝāĻŧā§ āϧā§āϰāĨ¤ āĻ āϤāĻāĻŦ, āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻĄā§āϰāĻžāĻāĻā§ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ⧠āϝāϤāĻāĻž āϏāĻŽā§āĻāĻŦ āĻĄā§āĻāĻž āϞā§āĻāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āĨ¤
āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋāϝāĻŧā§ fsync āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒā§āϰāĻāĻžāĻŦ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āϝāĻžāĻāĨ¤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻŦāĻŋāώāϝāĻŧ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāϏāĻāϏāĻĄāĻŋ āϰāϝāĻŧā§āĻā§:
- IntelÂŽ DC SSD S4500 480 GB, SATA 3.2, 6 Gb/s āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏāĻāϝā§āĻā§āϤ;
- Samsung 970 EVO Plus 500GB, PCIe 3.0 x4, ~31 Gbps āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏāĻāϝā§āĻā§āϤāĨ¤
Ubuntu 2255 āĻāĻžāϞāĻŋāϤ IntelÂŽ XeonÂŽ W-20.04-āĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻĄāĻŋāϏā§āĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤā§, sysbench 1.0.18 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻĄāĻŋāϏā§āĻāĻā§āϞāĻŋāϤ⧠ext4 āĻĢāϰā§āĻŽā§āϝāĻžāĻ āĻāϰāĻž āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒāĻžāϰā§āĻāĻŋāĻļāύ āϰāϝāĻŧā§āĻā§āĨ¤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤāĻŋ āĻšāϞ 100 āĻāĻŋāĻŦāĻŋ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻž:
sysbench --test=fileio --file-total-size=100G prepareāĻāϞāĻŽāĻžāύ āĻĒāϰā§āĻā§āώāĻž:
# ĐĐĩС fsync
sysbench --num-threads=16 --test=fileio --file-test-mode=rndrw --file-fsync-freq=0 run
# ĐĄ fsync ĐŋĐžŅĐģĐĩ ĐēаĐļдОК СаĐŋиŅи
sysbench --num-threads=16 --test=fileio --file-test-mode=rndrw --file-fsync-freq=1 runāĻĒāϰā§āĻā§āώāĻžāϰ āĻĢāϞāĻžāĻĢāϞ āĻā§āĻŦāĻŋāϞ⧠āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻĒāϰā§āĻā§āώāĻž
IntelÂŽ S4500
Samsung 970 EVO+
Fsync, MiB/s āĻāĻžāĻĄāĻŧāĻž āĻĒāĻĄāĻŧā§āύ
5734.89
9028.86
Fsync, MiB/s āĻāĻžāĻĄāĻŧāĻžāĻ āϞāĻŋāĻā§āύ
3823.26
6019.24
Fsync, MiB/s āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧāĻž
37.76
3.27
Fsync, MiB/s āĻāϰ āϏāĻžāĻĨā§ āϰā§āĻāϰā§āĻĄāĻŋāĻ
25.17
2.18
āĻāĻāĻž āĻĻā§āĻāĻž āϏāĻšāĻ āϝ⧠āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āϏā§āĻāĻŽā§āύā§āĻ āĻĨā§āĻā§ NVMe āĻāϤā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāϏā§āϰ āϏāĻžāĻĨā§ āύā§āϤā§āϤā§āĻŦ āĻĻā§āϝāĻŧ āϝāĻāύ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻĄāĻŋāϏā§āĻā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āϝāĻŧ, āĻāĻŦāĻ āϝāĻāύ fsync āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻšāĻžāϰāĻžāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻĻā§āĻāĻŋ āĻĒā§āϰāĻļā§āύ āĻāϤā§āĻĨāĻžāĻĒāύ āĻāϰā§:
- fsync āĻāĻžāĻĄāĻŧāĻž āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻā§āύ āĻĒāĻĄāĻŧāĻžāϰ āĻāϤāĻŋ āϞāĻŋāĻā§āĻā§āϰ āĻĢāĻŋāĻāĻŋāĻā§āϝāĻžāϞ āĻŦā§āϝāĻžāύā§āĻĄāĻāĻāĻĨāĻā§ āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧ?
- āĻā§āύ āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āϏā§āĻāĻŽā§āύā§āĻ SSD āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āϏāĻāĻā§āϝāĻ fsync āĻ āύā§āϰā§āϧ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻāĻžāϞ?
āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ āϏāĻšāĻ: sysbench āĻļā§āύā§āϝ-āĻāϰāĻž āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ 100 āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻā§āϰ āĻļā§āύā§āϝā§āϰ āĻāĻĒāϰ⧠āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āϝā§āĻšā§āϤ⧠āĻĄā§āĻāĻž āĻā§āĻŦ āĻ āĻāĻŋāύā§āύ āĻāĻŦāĻ āĻ āύā§āĻŽāĻžāύāϝā§āĻā§āϝ, āϤāĻžāĻ āĻŦāĻŋāĻāĻŋāύā§āύ OS āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāύ āĻāĻžāϰā§āϝāĻāϰ āĻšāϝāĻŧ āĻāĻŦāĻ āϤāĻžāϰāĻž āĻāĻžāϰā§āϝāĻāϰā§āĻāϰāĻŖāĻā§ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝāĻāĻžāĻŦā§ āϤā§āĻŦāϰāĻžāύā§āĻŦāĻŋāϤ āĻāϰā§āĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻŋāϏāĻŦā§āĻā§āĻā§āϰ āϏāĻŽāϏā§āϤ āĻĢāϞāĻžāĻĢāϞ āύāĻŋāϝāĻŧā§ āĻĒā§āϰāĻļā§āύ āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻĢāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
# ĐĐĩС fsync
fio --name=test1 --blocksize=16k --rw=randrw --iodepth=16 --runtime=60 --rwmixread=60 --fsync=0 --filename=/dev/sdb
# ĐĄ fsync ĐŋĐžŅĐģĐĩ ĐēаĐļдОК СаĐŋиŅи
fio --name=test1 --blocksize=16k --rw=randrw --iodepth=16 --runtime=60 --rwmixread=60 --fsync=1 --filename=/dev/sdbāĻĒāϰā§āĻā§āώāĻž
IntelÂŽ S4500
Samsung 970 EVO+
Fsync, MiB/s āĻāĻžāĻĄāĻŧāĻž āĻĒāĻĄāĻŧā§āύ
45.5
178
Fsync, MiB/s āĻāĻžāĻĄāĻŧāĻžāĻ āϞāĻŋāĻā§āύ
30.4
119
Fsync, MiB/s āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧāĻž
32.6
20.9
Fsync, MiB/s āĻāϰ āϏāĻžāĻĨā§ āϰā§āĻāϰā§āĻĄāĻŋāĻ
21.7
13.9
Fsync āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ NVMe-āĻ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻšā§āϰāĻžāϏā§āϰ āĻĒā§āϰāĻŦāĻŖāϤāĻž āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āĻĻā§āĻļā§āϝāĻŽāĻžāύāĨ¤ āĻāĻĒāύāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒā§āϰāĻļā§āύ⧠āϝā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāύ āĻŦāĻž āĻŦā§āϞāĻžāĻĢ
āĻāϰ āĻāĻā§ āĻāĻŽāϰāĻž āĻŦāϞā§āĻāĻŋāϞāĻžāĻŽ āϝ⧠āĻĄā§āĻāĻž āĻāĻāĻāĻŋ āĻŦāĻžāĻĢāĻžāϰ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻŦā§ āĻā§āύāĻāĻŋāϤ⧠āϤāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύāĻŋ, āϝā§āĻšā§āϤ⧠āĻāĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻŋāϞ āύāĻžāĨ¤ āĻāĻŽāύāĻāĻŋ āĻāĻāύāĻ āĻāĻŽāϰāĻž āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻāĻāĻŋāϞāϤāĻžāĻā§āϞāĻŋ āĻ āύā§āϏāύā§āϧāĻžāύ āĻāϰāĻŦ āύāĻž āĻāĻŦāĻ āĻĻā§āĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϧāϰāĻŖā§āϰ āĻŦāĻžāĻĢāĻžāϰāĻā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻŦ:
- āĻāĻžāϰā§āϝāĻā§āϰāĻŽ;
- āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ
āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰ āĻŦāĻžāĻĢāĻžāϰ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻĨāĻžāĻāĻž āĻŦāĻžāĻĢāĻžāϰāĻā§āϞāĻŋāĻā§ āĻŦā§āĻāĻžāϝāĻŧ āĻāĻŦāĻ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻŦāĻžāĻĢāĻžāϰ āĻĄāĻŋāϏā§āĻ āĻāύā§āĻā§āϰā§āϞāĻžāϰā§āϰ āĻāĻĻā§āĻŦāĻžāϝāĻŧā§ āĻŽā§āĻŽāϰāĻŋāĻā§ āĻŦā§āĻāĻžāϝāĻŧāĨ¤ fsync āϏāĻŋāϏā§āĻā§āĻŽ āĻāϞ āϤāĻžāϰ āĻŦāĻžāĻĢāĻžāϰ āĻĨā§āĻā§ āĻĒā§āϰāϧāĻžāύ āϏā§āĻā§āϰā§āĻā§ āĻĄā§āĻāĻž āϞā§āĻāĻžāϰ āĻāύā§āϝ āĻĄā§āϰāĻžāĻāĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻŽāĻžāύā§āĻĄā§āϰ āϏāĻ āĻŋāĻ āϏāĻŽā§āĻĒāĻžāĻĻāύ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāĻžāϰ āĻā§āύ⧠āĻāĻĒāĻžāϝāĻŧ āύā§āĻāĨ¤
āϝā§āĻšā§āϤ⧠āĻāϏāĻāϏāĻĄāĻŋ āĻāϰāĻ āĻāĻžāϞ āĻĒāĻžāϰāĻĢāϰā§āĻŽ āĻāϰā§, āϤāĻžāĻ āĻĻā§āĻāĻŋ āĻ āύā§āĻŽāĻžāύ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:
- āĻĄāĻŋāϏā§āĻ āĻāĻāĻāĻŋ āĻ āύā§āϰā§āĻĒ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻāĻāĻāĻŋ āϞā§āĻĄ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§;
- āĻĄāĻŋāϏā§āĻ "āĻŦā§āϞāĻžāĻĢ" āĻāϰ⧠āĻāĻŦāĻ āĻāĻŽāĻžāύā§āĻĄ āĻāĻĒā§āĻā§āώāĻž āĻāϰā§āĨ¤
āĻĄā§āϰāĻžāĻāĻā§āϰ āĻ āϏāĻžāϧ⧠āĻāĻāϰāĻŖ āϞāĻā§āώā§āϝ āĻāϰāĻž āϝāĻžāϝāĻŧ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻĒāĻžāĻāϝāĻŧāĻžāϰ āĻŦā§āϝāϰā§āĻĨāϤāĻžāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ , āĻāĻāĻž āĻāĻŋāϞ 2005 āĻŦāĻāϰā§āϰ āĻŽāϧā§āϝā§āĨ¤
āĻāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§āϰ āĻāύā§āϝ āĻĻā§āĻāĻŋ āĻļāĻžāϰā§āϰāĻŋāĻ āĻŽā§āĻļāĻŋāύ āĻĒā§āϰāϝāĻŧā§āĻāύ - "āϏāĻžāϰā§āĻāĻžāϰ" āĻāĻŦāĻ "āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ"āĨ¤ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻ āϧā§āύ⧠āĻĄāĻŋāϏā§āĻā§ āĻ āϞā§āĻĒ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ āĻĄā§āĻāĻž āϞā§āĻā§, fsync āĻāϞ āĻāϰ⧠āĻāĻŦāĻ āϝāĻž āϞā§āĻāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āϤāĻĨā§āϝ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
# ĐаĐŋŅŅĐēаĐĩŅŅŅ ĐŊа ŅĐĩŅвĐĩŅĐĩ
./diskchecker.pl -l [port]
# ĐаĐŋŅŅĐēаĐĩŅŅŅ ĐŊа ĐēĐģиĐĩĐŊŅĐĩ
./diskchecker.pl -s <server[:port]> create <file> <size_in_MB>āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻĒāϰā§, "āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ" āĻā§ āĻĄāĻŋ-āĻāύāĻžāϰā§āĻā§āĻ āĻāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŦāĻ āĻāϝāĻŧā§āĻ āĻŽāĻŋāύāĻŋāĻā§āϰ āĻāύā§āϝ āĻļāĻā§āϤāĻŋ āĻĢāĻŋāϰāĻŋāϝāĻŧā§ āĻĻā§āĻŦā§āύ āύāĻžāĨ¤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻŦāĻŋāώāϝāĻŧāĻā§ āĻŦāĻŋāĻĻā§āϝā§ā§ āĻĨā§āĻā§ āϏāĻāϝā§āĻ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻāϰāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ, āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻāĻ āĻŋāύ āĻļāĻžāĻāĻĄāĻžāĻāύ āϏāĻā§āĻāĻžāϞāύ āύāϝāĻŧāĨ¤ āĻāĻŋāĻā§ āϏāĻŽāϝāĻŧ āĻĒāϰā§, āϏāĻžāϰā§āĻāĻžāϰāĻāĻŋ āϏāĻāϝā§āĻā§āϤ āĻāĻŦāĻ OS āĻ āϞā§āĻĄ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ OS āĻŦā§āĻ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻžāĻā§ āĻāĻŦāĻžāϰ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻšāĻŦā§ diskchecker.pl, āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻŋ āϝā§āĻā§āϤāĻŋ āĻĻāĻŋāϝāĻŧā§ āϝāĻžāĻāĻžāĻ.
./diskchecker.pl -s <server[:port]> verify <file>āĻā§āĻ āĻļā§āώā§, āĻāĻĒāύāĻŋ āϤā§āϰā§āĻāĻŋāϰ āϏāĻāĻā§āϝāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύāĨ¤ āϝāĻĻāĻŋ āϤāĻžāϰāĻž 0 āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻĄāĻŋāϏā§āĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻāϤā§āϤā§āϰā§āĻŖ āĻšāϝāĻŧā§āĻā§āĨ¤ āĻĄāĻŋāϏā§āĻā§āϰ āĻāύā§āϝ āϏāĻĢāϞ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϰ āϏāĻāĻŽāĻŋāĻļā§āϰāĻŖ āĻŦāĻžāĻĻ āĻĻāĻŋāϤā§, āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ āĻāϝāĻŧā§āĻāĻŦāĻžāϰ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻŽāĻžāĻĻā§āϰ S4500 āĻā§āύ⧠āĻĒāĻžāĻāϝāĻŧāĻžāϰ āϞāϏ āϤā§āϰā§āĻāĻŋ āĻĻā§āĻāĻžāϝāĻŧāύāĻŋ, āϝāĻžāϰ āĻŽāĻžāύ⧠āĻāĻāĻŋ āĻĒā§āϰāĻā§āϰ fsync āĻāϞ āϏāĻš āϞā§āĻĄā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤāĨ¤
āĻāĻĒāϏāĻāĻšāĻžāϰ
āĻĄāĻŋāϏā§āĻ āĻŦāĻž āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϰā§āĻĄāĻŋāĻŽā§āĻĄ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻĒāύāĻžāĻā§ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŽāύ āĻāĻžāĻā§āϰ āϏā§āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦāĻŋāώāϝāĻŧāĻā§āϞāĻŋ āĻŽāύ⧠āϰāĻžāĻāĻž āĻāĻāĻŋāϤāĨ¤ āĻĒā§āϰāĻĨāĻŽ āύāĻāϰā§, āĻāĻāĻŋ āϏā§āĻĒāώā§āĻ āĻŦāϞ⧠āĻŽāύ⧠āĻšāĻā§āĻā§ āϝ⧠NVMe, āĻ āϰā§āĻĨāĻžā§, āĻāĻāĻāĻŋ PCIe āĻāύā§āĻāĻžāϰāĻĢā§āϏā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ SSD, āĻāĻāĻāĻŋ "āĻā§āϞāĻžāϏāĻŋāĻ" SATA SSD āĻāϰ āĻā§āϝāĻŧā§ āĻĻā§āϰā§āϤāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻāĻŽāϰāĻž āĻāĻ āϝā§āĻŽāύ āĻŦā§āĻāϤ⧠āĻĒā§āϰā§āĻāĻŋ, āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻāĻŦāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻžāĻā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻāĻāĻŋ āύāĻžāĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
IaaS āĻĒā§āϰāĻĻāĻžāύāĻāĻžāϰā§āϰ āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻžāĻĄāĻŧāĻž āύā§āĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻĒāύāĻŋ āĻā§āĻāĻžāĻŦā§ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŦā§āύ?
āĻāĻŽāϰāĻž āĻŽāύā§āϤāĻŦā§āϝ⧠āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāĻāĻŋ.
āĻāϤā§āϏ: www.habr.com
