เจฎเฉ‡เจฐเจพ NVMe เจ‡เฉฑเจ• SSD เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?

เจฎเฉ‡เจฐเจพ NVMe เจ‡เฉฑเจ• SSD เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?
เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš, เจ…เจธเฉ€เจ‚ I/O เจธเจฌ-เจธเจฟเจธเจŸเจฎ เจฆเฉ€เจ†เจ‚ เจ•เฉเจ เจธเฉ‚เจ–เจฎเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ 'เจคเฉ‡ เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจชเฉเจฐเจญเจพเจต เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡เฅค

เจ•เฉเจ เจนเจซเจผเจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจญเฉฑเจœเจฟเจ† เจธเฉ€ เจ•เจฟ เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจคเฉ‡ NVMe เจฆเฉ‚เจœเฉ‡ เจธเจฐเจตเจฐ เจคเฉ‡ SATA เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจ•เจฟเจ‰เจ‚ เจนเฉˆ. เจฎเฉˆเจ‚ เจธเจฐเจตเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ† เจ…เจคเฉ‡ เจฎเจนเจฟเจธเฉ‚เจธ เจ•เฉ€เจคเจพ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจšเจพเจฒ เจธเจตเจพเจฒ เจธเฉ€: NVMe เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเจฟเฉฑเจธเฉ‡ เจคเฉ‹เจ‚ เจธเฉ€, เจ…เจคเฉ‡ SSD เจธเจฐเจตเจฐ เจนเจฟเฉฑเจธเฉ‡ เจคเฉ‹เจ‚ เจธเฉ€.

เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจพเจคเจพเจตเจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจ–-เจตเฉฑเจ– เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจคเฉ‹เจ‚ เจ‰เจคเจชเจพเจฆเจพเจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจเจพ เจธเจนเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• เจธเฉฐเจชเฉ‚เจฐเจจ เจคเจ•เจจเฉ€เจ•เฉ€ เจœเจตเจพเจฌ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฎเฉ‚เจฒ เจ—เฉฑเจฒเจพเจ‚ เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจชเฉเฉฑเจ›เฉ‡ เจ—เจ เจธเจตเจพเจฒ เจฆเจพ เจœเจตเจพเจฌ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡เฅค

fsync เจ•เฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจ•เจฟเฉฑเจฅเฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ

เจกเจฐเจพเจˆเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจฆเฉ€ เจ—เจคเฉ€ เจตเจงเจพเจ‰เจฃ เจฒเจˆ, เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฌเจซเจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฏเจพเจจเฉ€, เจ…เจธเจฅเจฟเจฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจฌเจซเจฐ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจกเจฐเจพเจˆเจต เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจฎเฉŒเจ•เจพ เจชเฉ‡เจธเจผ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจฎเฉŒเจ•เฉ‡ เจฆเฉ‡ เจฎเจพเจชเจฆเฉฐเจก เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจ…เจคเฉ‡ เจกเจฐเจพเจˆเจต เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจชเจพเจตเจฐ เจซเฉ‡เจฒ เจนเฉ‹เจฃ เจฆเฉ€ เจธเฉ‚เจฐเจค เจตเจฟเฉฑเจš, เจฌเจซเจฐ เจตเจฟเฉฑเจš เจธเจพเจฐเจพ เจกเจพเจŸเจพ เจ–เจคเจฎ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ•เฉฐเจฎ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจต เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจตเจฟเจšเจ•เจพเจฐเจฒเฉ‡ เจฌเจซเจฐ เจตเจฟเฉฑเจš เจเฉ‚เจ  เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจน เจญเจฐเฉ‹เจธเจพ POSIX- เจ…เจจเฉเจ•เฉ‚เจฒ 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 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจชเฉเจฐเจญเจพเจต เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเฉ€เจเฅค เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจŸเฉˆเจธเจŸ เจฆเฉ‡ เจตเจฟเจธเจผเจฟเจ†เจ‚ เจตเจœเฉ‹เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ SSDs เจนเจจ:

  • 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. เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจ–เฉฐเจก SSD เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ เจตเจฟเฉฑเจš fsync เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฒเจˆ เจฌเจฟเจนเจคเจฐ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?

เจชเจนเจฟเจฒเฉ‡ เจธเจตเจพเจฒ เจฆเจพ เจœเจตเจพเจฌ เจธเจงเจพเจฐเจจ เจนเฉˆ: 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 เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจ‡เจธเจฆเฉ‡ เจฌเจซเจฐ เจคเฉ‹เจ‚ เจฎเฉเฉฑเจ– เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจกเจพเจŸเจพ เจฒเจฟเจ–เจฃ เจฒเจˆ เจกเจฐเจพเจˆเจต เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจญเฉ‡เจœเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจ•เฉ‹เจฒ เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจธเจนเฉ€ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจ•เจฐเจจ เจฆเจพ เจ•เฉ‹เจˆ เจคเจฐเฉ€เจ•เจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ SSD เจตเจงเฉ€เจ† เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฆเฉ‹ เจงเจพเจฐเจจเจพเจตเจพเจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ:

  • เจกเจฟเจธเจ• เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจฏเฉ‹เจœเจจเจพ เจฆเฉ‡ เจฒเฉ‹เจก เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ;
  • เจกเจฟเจธเจ• "bluffs" เจ…เจคเฉ‡ เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจจเจœเจผเจฐเจ…เฉฐเจฆเจพเจœเจผ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจกเจฐเจพเจˆเจต เจฆเฉ‡ เจฌเฉ‡เจˆเจฎเจพเจจ เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเจพเจตเจฐ เจซเฉ‡เจฒเฉเจน เจนเฉ‹เจฃ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจŸเฉˆเจธเจŸ เจ•เจฐเจฆเฉ‡ เจนเฉ‹. เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเจพเจฒ เจšเฉˆเฉฑเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹