рдХрд┐рди рдореЗрд░реЛ NVMe SSD рднрдиреНрджрд╛ рдврд┐рд▓реЛ рдЫ?

рдХрд┐рди рдореЗрд░реЛ NVMe SSD рднрдиреНрджрд╛ рдврд┐рд▓реЛ рдЫ?
рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА I / O рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХрд╛ рдХреЗрд╣реА рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВ рд░ рдкреНрд░рджрд░реНрд╢рдирдорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рднрд╛рд╡рд▓рд╛рдИ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рдХреЗрд╣рд┐ рд╣рдкреНрддрд╛ рдЕрдШрд┐ рдо рдПрдЙрдЯрд╛ рдкреНрд░рд╢реНрдирдорд╛ рджрдЧреБрд░реЗрдБ рдХрд┐рди рдПрдХ рд╕рд░реНрднрд░рдорд╛ NVMe рдЕрд░реНрдХреЛрдорд╛ SATA рднрдиреНрджрд╛ рдврд┐рд▓реЛ рдЫред рдореИрд▓реЗ рд╕рд░реНрднрд░рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╣реЗрд░реЗрдБ рд░ рдорд╣рд╕реБрд╕ рдЧрд░реЗрдВ рдХрд┐ рдпреЛ рдПрдХ рдЪрд╛рд▓ рдкреНрд░рд╢реНрди рд╣реЛ: NVMe рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЦрдгреНрдбрдмрд╛рдЯ рдерд┐рдпреЛ, рд░ SSD рд╕рд░реНрднрд░ рдЦрдгреНрдбрдмрд╛рдЯ рдерд┐рдпреЛред

рдЬрд╛рд╣рд┐рд░ рдЫ, рдмрд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡реЗрд╢рдорд╛ рдмрд┐рднрд┐рдиреНрди рдЦрдгреНрдбрдХрд╛ рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБ рд╕рд╣реА рд╣реЛрдЗрди, рддрд░ рдпреЛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЙрддреНрддрд░ рд╣реЛрдЗрдиред рд╣рд╛рдореА рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ рдЕрдзреНрдпрдпрди рдЧрд░реНрдиреЗрдЫреМрдВ, рдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рд╕реЛрдзрд┐рдПрдХреЛ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреЗрдЫреМрдВред

fsync рдХреЗ рд╣реЛ рд░ рдпреЛ рдХрд╣рд╛рдБ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ

рдбреНрд░рд╛рдЗрднрдХреЛ рд╕рд╛рде рдХрд╛рдордХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рдбрд╛рдЯрд╛ рдмрдлрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддреНрдпреЛ рд╣реЛ, рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдореЗрдореЛрд░реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬрдмрд╕рдореНрдо рдбреНрд░рд╛рдЗрднрдорд╛ рдмрдлрд░рдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрди рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрд╡рд╕рд░рд▓реЗ рдЖрдлреИрд▓рд╛рдИ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджреИрдиред рдЕрд╡рд╕рд░ рдорд╛рдкрджрдгреНрдб рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рд░ рдбреНрд░рд╛рдЗрдн рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫред рдкрд╛рд╡рд░ рд╡рд┐рдлрд▓рддрд╛рдХреЛ рдШрдЯрдирд╛рдорд╛, рдмрдлрд░рдорд╛ рд╕рдмреИ рдбрд╛рдЯрд╛ рд╣рд░рд╛рдЙрдиреЗрдЫред

рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН рдЬрд╕рдорд╛ рдпреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдбреНрд░рд╛рдЗрднрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, рд░ рдордзреНрдпрд╡рд░реНрддреА рдмрдлрд░рдорд╛ рд╣реЛрдЗрдиред рдпреЛ рдЖрд╢реНрд╡рд╛рд╕рди POSIX-compliant fsync рдкреНрд░рдгрд╛рд▓реА рдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред fsync рдХрд▓рд▓реЗ рдмрдлрд░рдмрд╛рдЯ рдбреНрд░рд╛рдЗрднрдорд╛ рд▓реЗрдЦреНрди рдмрд╛рдзреНрдп рдкрд╛рд░реНрдЫред

рдЫреЛрдЯреЛ C рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд░реВрдкрдорд╛ рдХреГрддреНрд░рд┐рдо рдЙрджрд╛рд╣рд░рдгрдХреЛ рд╕рд╛рде рдмрдлрд░рд╣рд░реВрдХреЛ рдкреНрд░рднрд╛рд╡ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реМрдВред

#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 рдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рдкреНрд░рднрд╛рд╡ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реМрдВред рд╣рд╛рдореАрд╕рдБрдЧ рдирд┐рдореНрди SSD рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╖рдпрд╣рд░реВ рдЫрдиреН:

  • 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 GB рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╣реЛ:

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 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╣рд░рд╛рдЙрдБрдЫред рдпрд╕рд▓реЗ рджреБрдИрд╡рдЯрд╛ рдкреНрд░рд╢реНрди рдЦрдбрд╛ рдЧрд░реНрдЫ:

  1. рдХрд┐рди рдкрдвреНрдиреЗ рдЧрддрд┐ fsync рдмрд┐рдирд╛ рдкрд░реАрдХреНрд╖рдгрдорд╛ рд▓рд┐рдЩреНрдХрдХреЛ рднреМрддрд┐рдХ рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде рднрдиреНрджрд╛ рдмрдвреА рд╣реБрдиреНрдЫ?
  2. рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ fsync рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рд╕рд░реНрднрд░ рдЦрдгреНрдб SSD рдХрд┐рди рд░рд╛рдореНрд░реЛ рдЫ?

рдкрд╣рд┐рд▓реЛ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рд╕рд░рд▓ рдЫ: sysbench рд▓реЗ рд╢реВрдиреНрдп-рднрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫред рдпрд╕рд░реА, рдкрд░реАрдХреНрд╖рдг рд╢реВрдиреНрдп рдХреЛ 100 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рднрдиреНрджрд╛ рдмрдвреА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдбреЗрдЯрд╛ рдзреЗрд░реИ рд╕рдорд╛рди рд░ рдЕрдиреБрдорд╛рдирд┐рдд рднрдПрдХреЛрд▓реЗ, рд╡рд┐рднрд┐рдиреНрди OS рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдЦреЗрд▓рдорд╛ рдЖрдЙрдБрдЫрдиреН, рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдиреНрдЫред

рдпрджрд┐ рддрдкрд╛рдЗрдБ sysbench рдХреЛ рд╕рдмреИ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдкреНрд░рд╢реНрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ fio рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

# ╨С╨╡╨╖ 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 рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд▓реЗ рдпрд╕рдХреЛ рдмрдлрд░рдмрд╛рдЯ рдореБрдЦреНрдп рднрдгреНрдбрд╛рд░рдгрдорд╛ рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдбреНрд░рд╛рдЗрднрдорд╛ рдЖрджреЗрд╢ рдкрдард╛рдЙрдБрдЫ, рддрд░ рдпреЛ рдЖрджреЗрд╢рдХреЛ рд╕рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрдиреЗ рдХреБрдиреИ рддрд░рд┐рдХрд╛ рдЫреИрдиред

рдПрд╕рдПрд╕рдбреАрд▓реЗ рд░рд╛рдореНрд░реЛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рд╣реБрдирд╛рд▓реЗ, рджреБрдИ рдзрд╛рд░рдгрд╛рд╣рд░реВ рдмрдирд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ:

  • рдбрд┐рд╕реНрдХ рд╕рдорд╛рди рдпреЛрдЬрдирд╛рдХреЛ рд▓реЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • рдбрд┐рд╕реНрдХрд▓реЗ "рдмреНрд▓рдл" рдЧрд░реНрдЫ рд░ рдЖрджреЗрд╢рд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдЫред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд╛рд╡рд░ рд╡рд┐рдлрд▓рддрд╛ рд╕рдВрдЧ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдбреНрд░рд╛рдЗрднрдХреЛ рдмреЗрдИрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд╕рд╛рде рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред diskchecker.pl, рддреНрдпреЛ рдерд┐рдпреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдпреЛ 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 рдкреНрд░рджрд╛рдпрдХрдмрд╛рдЯ рднрд╛рдбрд╛рдорд╛ рд▓рд┐рдБрджрд╛ рддрдкрд╛рдЗрдБ рдХрд╕рд░реА рд╕рд░реНрднрд░ рдШрдЯрдХрд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?
рд╣рд╛рдореА рддрдкрд╛рдИрд▓рд╛рдИ рдХрдореЗрдиреНрдЯрдорд╛ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред

рдХрд┐рди рдореЗрд░реЛ NVMe SSD рднрдиреНрджрд╛ рдврд┐рд▓реЛ рдЫ?

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди