เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ—

ะ’ เจชเจฟเจ›เจฒเฉ€ เจตเจพเจฐ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ…เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจŸเฉ‚เจฒเจธ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค เจ…เฉฑเจœ เจ…เจธเฉ€เจ‚ เจฒเฉ€เจจเจ•เจธ - เจ‡เฉฐเจŸเจฐเจฌเฉˆเจ‚เจš, เจซเจฟเจ“, เจเจšเจกเฉ€เจชเจพเจฐเจฎ, เจเจธ เจ…เจคเฉ‡ เจฌเฉ‹เจจเฉ€ 'เจคเฉ‡ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค

เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ—
ะคะพั‚ะพ - เจกเฉˆเจจเฉ€เจ…เจฒ เจฒเฉ‡เจตเจฟเจธ เจชเฉ‡เจฒเฉเจธเฉ€ - เจ…เจจเจธเจชเจฒเฉˆเจธเจผ

เจซเจฟเจ“

Fio (เจฒเจšเจ•เจฆเจพเจฐ I/O เจŸเฉˆเจธเจŸเจฐ เจฒเจˆ เจนเฉˆ) เจ‡เฉฑเจ• เจฒเฉ€เจจเจ•เจธ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ เจกเจฟเจธเจ• I/O เจธเจŸเฉเจฐเฉ€เจฎ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเจฟเฉฐเจกเฉ‹เจœเจผ 'เจคเฉ‡ เจตเฉ€ เจšเจฒเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ - เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจธเจพเจˆเจ—เจตเจฟเจจ. เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ—เจพเจˆเจก เจ…เฉฐเจฆเจฐ เจนเฉˆ GitHub 'เจคเฉ‡ fio เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚.

เจฒเฉ‡เจ–เจ• เจซเจฟเจ“ - เจœเฉ‡เจจเจธ เจเจ•เจธเจฌเฉ‹ (เจœเฉ‡เจจเจธ เจเจ•เจธเจฌเฉ‹), เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจฒเฉ€เจจเจ•เจธ เจ…เจคเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจตเจฟเฉฑเจš IO เจธเจฌ-เจธเจฟเจธเจŸเจฎ เจฒเจˆ blktrace I/O เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆเฅค เจ‰เจธเจจเฉ‡ เจซเจฟเจ“ เจฌเจฃเจพเจ‡เจ†, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉˆเจ‚ เจฅเฉฑเจ• เจ—เจฟเจ† เจนเจพเจ‚ เจ–เจพเจธ เจฒเฉ‹เจกเจพเจ‚ เจฆเฉ€ เจฆเจธเจคเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฒเจฟเจ–เฉ‹เฅค

เจ‰เจชเจฏเฉ‹เจ—เจคเจพ IOPS เจ…เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจฅเฉเจฐเจฐเฉ‚เจชเฉเจŸ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเฉ‡เจ—เฉ€, เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ I/O เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ•เจคเจพเจฐ เจฆเฉ€ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจฆเจพ เจ…เฉฐเจฆเจพเจœเจผเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจตเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเจฟเจธเจผเฉ‡เจธเจผ เจซเจพเจˆเจฒเจพเจ‚ (.fio เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ) เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจฆเฉ€เจ†เจ‚ เจธเจผเจฐเจคเจพเจ‚ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ•เจˆ เจŸเฉˆเจธเจŸ เจตเจฟเจ•เจฒเจช เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฒเจฟเจ–เจฃเจพ, เจชเฉœเฉเจนเจจเจพ เจ…เจคเฉ‡ เจ“เจตเจฐเจฐเจพเจˆเจŸเจฟเฉฐเจ— เจนเฉˆเฅค เจ‡เจฅเฉ‡ เจ‰เจฆเจพเจนเจฐเจจ ัะพะดะตั€ะถะธะผะพะณะพ ั„ะฐะนะปะฐ ะดะปั ะฟะตั€ะฒะพะณะพ ัะปัƒั‡ะฐั:

[global]
	name=fio-rand-read
	filename=fio-rand-read
	rw=randread
	bs=4K
	direct=0
	numjobs=1
	time_based=1
	runtime=900

เจ…เฉฑเจœ เจซเจฟเจ“ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉฑเจกเฉ€เจ†เจ‚ เจ•เฉฐเจชเจจเฉ€เจ†เจ‚ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ - เจ‰เจน เจตเจฟเฉฑเจš เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ SUSE, เจจเจฟ NutเจŸเฉˆเจจเจฟเจ•เจธ ะธ IBM.

Hdparm

เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ•เฉˆเจจเฉ‡เจกเฉ€เจ…เจจ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฎเจพเจฐเจ• เจฒเจพเจฐเจก เจฆเฉเจ†เจฐเจพ 2005 เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ เจฒเฉ‡เจ–เจ• เจฆเฉเจ†เจฐเจพ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจ…เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจตเฉฐเจกเจพเจ‚ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉˆเฅค hdparm เจฆเจพ เจฎเฉเฉฑเจ– เจ‰เจฆเฉ‡เจธเจผ เจกเจฐเจพเจˆเจต เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค เจชเจฐ เจธเฉฐเจฆ เจนเฉˆ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะดะปั ะฟั€ะพะฒะตะดะตะฝะธั ะฟั€ะพัั‚ั‹ั… ะฑะตะฝั‡ะผะฐั€ะบะพะฒ, ะฝะฐะฟั€ะธะผะตั€, ะธะทะผะตั€ะตะฝะธั ัะบะพั€ะพัั‚ะธ ั‡ั‚ะตะฝะธั. ะ”ะปั ัั‚ะพะณะพ ะฝัƒะถะฝะพ ะฝะฐะฟะธัะฐั‚ัŒ ะฒ ะบะพะฝัะพะปะธ ะบะพะผะฐะฝะดัƒ:

$ sudo hdparm -t /dev/sdb

เจธเจฟเจธเจŸเจฎ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจพ เจœเจตเจพเจฌ เจคเจฟเจ†เจฐ เจ•เจฐเฉ‡เจ—เจพ:

Timing buffered disk reads: 242 MB in 3.01 seconds = 80.30 MB/sec

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

S

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

เจธเจพเจฐเฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจนเจจ, เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ - เจฅเฉเจฐเฉเจชเฉเฉฑเจŸ, เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€, เจธเจผเจกเจฟเจŠเจฒเจฐ เจชเฉเจฐเจฆเจฐเจธเจผเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, throughput-sync.sh เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจœเจพเจ‚ เจฒเจฟเจ–เจฃ เจฆเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเจพเจฒ "เจฌเฉฐเจฌเจพเจฐเจก" เจ•เจฐเจฆเจพ เจนเฉˆ (เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฆเฉฑเจธเฉ€ เจ—เจˆ fio เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ)เฅค เจ‡เจฅเฉ‡ เจ‡เจธ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจˆ เจ•เฉ‹เจก.

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ - comm_startup_lat.sh - เจกเจฟเจธเจ• เจคเฉ‹เจ‚ เจกเจพเจŸเจพ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€ เจจเฉ‚เฉฐ เจฎเจพเจชเจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ•เฉˆเจธเจผ "เจ เฉฐเจขเจพ" เจนเฉเฉฐเจฆเจพ เจนเฉˆ (เจœเจฆเฉ‹เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจกเฉ‡เจŸเจพ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ)เฅค เจ•เฉ‹เจก เจตเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ.

เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ—
ะคะพั‚ะพ - เจ…เจ—เฉ‡ เจฌเฉˆเจฐเฉ‹เจธ - เจ…เจจเจธเจชเจฒเฉˆเจธเจผ

เจฌเฉŒเจจเฉ€

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

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

เจฌเฉ‹เจจเฉ€ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค, เจนเจพเจฐเจก เจกเจฐเจพเจˆเจตเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจฒเจˆ เจŸเฉ‚เจฒเจธ เจฆเจพ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเฉˆเฉฑเจŸ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ - เจฌเฉ‹เจจเฉ€++ (C เจฆเฉ€ เจฌเจœเจพเจ C++ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ†)เฅค เจ‡เจน เจตเจพเจงเฉ‚ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจŸเฉ‚เจฒ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเฉฑเจ–-เจตเฉฑเจ– HDD เจœเจผเฉ‹เจจเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ zcav. เจฌเฉ‹เจจเฉ€++ เจตเฉ€ ะฟะพะดั…ะพะดะธั‚ เจฎเฉ‡เจฒ เจธเจฐเจตเจฐเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฐเจตเจฐเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจฒเจˆเฅค

เจ‡เฉฐเจŸเจฐเจฌเฉˆเจ‚เจš

เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเจฟเจ•เจธเจฟเจค เจ•เฉ€เจคเฉ€ เจ•เฉŒเจจ เจ•เฉ‹เจฒเฉ€เจตเจพเจธ (เจ•เฉ‹เจจ เจ•เฉ‹เจฒเฉ€เจตเจพเจธ), เจ†เจธเจŸเฉเจฐเฉ‡เจฒเฉ€เจ…เจจ เจเจจเฉ‡เจธเจฅเฉ€เจŸเจฟเจธเจŸ เจœเฉ‹ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ‡ เจฏเฉ‹เจ—เจฆเจพเจจ เจฒเจˆ เจœเจพเจฃเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ "เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅคเจจเจฟเจฐเจชเฉฑเจ– เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจธเจผเจกเจฟเจŠเจฒเจฐ" เจ‡เฉฐเจŸเจฐเจฌเฉˆเจ‚เจš เจคเฉเจนเจพเจจเฉ‚เฉฐ I/O เจธเจผเจกเจฟเจŠเจฒเจฐ เจ…เจคเฉ‡ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฐเจŸเจฐเจฌเฉˆเจ‚เจš เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ CPU เจธเจผเจกเจฟเจŠเจฒเจฐ เจฆเฉ‡ เจตเจฟเจตเจนเจพเจฐ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจ•เฉฐเจฎ เจ†เจกเฉ€เจ“ เจ…เจคเฉ‡ เจตเฉ€เจกเฉ€เจ“ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ, เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจ—เฉ‡เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ, เจœเจพเจ‚ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจพเจ‡เจฒเจพเจ— เจฌเจพเจ•เจธ เจจเฉ‚เฉฐ เจ–เจฟเฉฑเจšเจฃเจพ.

เจธเจฐเฉ‹เจค เจ•เฉ‹เจก, เจŸเฉ‚เจฒ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฒเจˆ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจ…เจคเฉ‡ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ‚ เจตเจฟเฉฑเจš เจชเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ GitHub 'เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€.

ะž ั‡ะตะผ ะผั‹ ะฟะธัˆะตะผ ะฒ ะฝะฐัˆะธั… ะฑะปะพะณะฐั…:

เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจฒเฉ€เจจเจ•เจธ เจธเจฐเจตเจฐเจพเจ‚ เจฒเจˆ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•: 5 เจ“เจชเจจ เจŸเฉ‚เจฒ

เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจซเจพเจˆเจฒเจพเจ‚ เจฆเจพ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเฉˆเจฃเจพ: เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจšเจพเจ‡เจ† เจœเจพเจตเฉ‡
เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจนเจพเจฐเจก เจกเจฐเจพเจˆเจต เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจ•เจฟเจตเฉ‡เจ‚ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจนเฉˆ?
เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจชเฉเจฐเจธเจผเจพเจธเจ•เจพเจ‚ เจฒเจˆ เจธเจฟเจ–เจฒเจพเจˆ เจธเจŸเฉˆเจ‚เจก: เจ•เจฒเจพเจ‰เจก เจ•เจฟเจตเฉ‡เจ‚ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ

เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจธเจฐเจนเฉฑเจฆ 'เจคเฉ‡ เจฏเฉฐเจคเจฐเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš: เจ—เฉเจชเจค เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ—เฉเจ†เจ‰เจฃ เจฒเจˆ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเฉˆ?
เจฒเฉ€เจจเจ•เจธ 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ: เจ“เจชเจจ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ•เจฟเฉฐเจ— เจธเจจเฉˆเจชเจธเจผเจพเจŸ: "เจธเจจเฉˆเจชเจธเจผเจพเจŸ" เจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?

เจธเจฐเฉ‹เจค: www.habr.com

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