เจเจน เจฌเจนเฉเจค เจตเจงเฉเจ เจนเฉ เจเจฆเฉเจ เจธเจพเจฐเฉเจเจ เจเจผเจฐเฉเจฐเฉ เจเฉเจเฉเจเจ เจเฉเจเจผเจพเจ เจนเฉฑเจฅ เจตเจฟเฉฑเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ: เจเฉฑเจ เจตเจงเฉเจ เจชเฉเฉฑเจจ เจ
เจคเฉ เจจเฉเจเจชเฉเจก, เจเฉฑเจ เจคเจฟเฉฑเจเฉ เจชเฉเจจเจธเจฟเจฒ, เจเฉฑเจ เจเจฐเจพเจฎเจฆเจพเจเจ เจฎเจพเจเจธ, เจเฉเจ เจตเจพเจงเฉ เจคเจพเจฐเจพเจ, เจเจฆเจฟเฅค เจเจน เจ
เจธเจชเจธเจผเจ เจเฉเจเจผเจพเจ เจงเจฟเจเจจ เจจเจนเฉเจ เจเจฟเฉฑเจเจฆเฉเจเจ, เจชเจฐ เจเจผเจฟเฉฐเจฆเจเฉ เจจเฉเฉฐ เจเจฐเจพเจฎ เจฆเจฟเฉฐเจฆเฉเจเจ เจนเจจเฅค เจเจนเฉ เจเจนเจพเจฃเฉ เจตเฉฑเจ-เจตเฉฑเจ เจฎเฉเจฌเจพเจเจฒ เจ
เจคเฉ เจกเฉเจธเจเจเฉเจช เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจจเจพเจฒ เจนเฉ: เจฒเฉฐเจฌเฉ เจธเจเฉเจฐเฉเจจเจธเจผเฉเจเจธ เจฒเจ, เจคเจธเจตเฉเจฐ เจฆเฉ เจเจเจพเจฐ เจจเฉเฉฐ เจเจเจพเจเจฃ เจฒเจ, เจจเจฟเฉฑเจเฉ เจตเจฟเฉฑเจค เจฆเฉ เจเจฃเจจเจพ เจเจฐเจจ เจฒเจ, เจธเจผเจฌเจฆเจเฉเจธเจผ, เจ
เจจเฉเจตเจพเจฆเจ, เจเจจเจตเจฐเจเจฐ, เจเจฆเจฟ. เจเฉ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจนเฉ?
เจเจฎเจฟเจเจจเจฟเจเจผเจฎ เจ เจเจฟเจ เจนเฉ เจธเจพเจฅเฉเจเฅค
เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉ - เจคเฉเจน เจฒเจ เจธเจพเจกเฉ เจตเฉ.เจชเฉ.เจเจธ
เจ เจธเฉเจ เจชเฉเจฐเจคเฉเจฏเฉเจเฉเจเจ เจ เจคเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจฒเฉเจ เจชเฉเฉเจนเฉ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจจเฉ 3-4 เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ เจฒเจฟเจเจฟเจ เจธเฉ เจเจฟ เจเฉฑเจ เจธเจธเจคเฉ VPS เจฆเฉ เจฒเฉเฉ เจเจฟเจเจ เจจเจนเฉเจ เจนเฉเฅค เจเฉเจฐ, เจเจน เจธเจนเฉ เจนเฉ, เจซเจฟเจฐ VPS "เจเฉฑเจ เจชเฉเจธเฉ เจฒเจ" เจธเจผเฉเฉฑเจง เจฎเจพเจฐเจเฉเจเจฟเฉฐเจ เจธเฉ เจ เจคเฉ เจเจฎ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฎเฉเจเจฟเจเจ เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจธเฉเฅค เจชเจฐ เจธเจฎเจพเจ เจฌเจฆเจฒ เจฐเจฟเจนเจพ เจนเฉ, เจตเจฐเจเฉเจ เจฒ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจเฉเจฎเจค เจเฉฑเจ เจ เจคเฉ เจเฉฑเจ เจนเฉเฉฐเจฆเฉ เจเจพ เจฐเจนเฉ เจนเฉ, เจ เจคเฉ 30 เจฐเฉเจฌเจฒ เจเฉฑเจ เจฎเจนเฉเจจเฉ เจฒเจ เจ เจธเฉเจ เจเจน เจชเฉเจธเจผเจเจธเจผ เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจนเจพเจ:
- เจชเฉเจฐเฉเจธเฉเจธเจฐ: Intel Xeon 2 GHz (1 เจเฉเจฐ)
- เจฒเฉเจจเจเจธ เจธเจฟเจธเจเจฎ (เจเฉเจฃเจจ เจฒเจ เจกเฉเจฌเฉเจ เจจ, เจเจฌเฉฐเจเฉ, CentOS)
- 1 เจธเจฎเจฐเจชเจฟเจค IPv4 เจชเจคเจพ
- เจคเฉเจเจผ เจเจเจเจฐเจชเฉเจฐเจพเจเจเจผ-เจเจฒเจพเจธ SSD เจกเจฐเจพเจเจตเจพเจ 'เจคเฉ 10 GB เจกเจพเจเจพ เจธเจเฉเจฐเฉเจ
- เจฐเฉเจฎ: 512 MB
- เจชเฉเจฐเจคเฉ เจธเจเจฟเฉฐเจ เจฌเจฟเจฒเจฟเฉฐเจ
- เจฌเฉเจ เฉฐเจค เจเจตเจพเจเจพเจ
เจเฉเจฐเจฟเจซ เจตเจพเจงเฉ เจคเจเจจเฉเจเฉ เจชเจพเจฌเฉฐเจฆเฉเจเจ เจฆเฉ เจ
เจงเฉเจจ เจนเฉ, เจตเฉเจฐเจตเฉ 'เจคเฉ
เจเจน เจตเจฐเจเฉเจ เจฒ เจธเจฐเจตเจฐ เจเจฟเจธ เจฒเจ เจขเฉเจเจตเจพเจ เจนเฉ? เจนเจพเจ เจฒเจเจญเจ เจนเจฐ เจเจฟเจธเฉ เจฒเจ: เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจ เจตเจพเจฒเฉ, เจเจคเจธเจผเจพเจนเฉ, เจคเจเจฐเจฌเฉเจเจพเจฐ เจตเจฟเจเจพเจธเจเจพเจฐ, DIY เจชเฉเจฐเจธเจผเฉฐเจธเจ เจ เจคเฉ เจเฉฑเจฅเฉเจ เจคเฉฑเจ เจเจฟ เจเฉเจ เจเฉฐเจชเจจเฉเจเจเฅค
เจเจน VPS เจเจฟเจธ เจฒเจ เจขเฉเจเจตเจพเจ เจนเฉ?
เจ เจธเฉเจ เจธเฉเจเจฆเฉ เจนเจพเจ เจเจฟ เจนเฉเจฌเจฐ เจฆเฉ เจชเจพเจ เจ เจจเจฟเจธเจผเจเจค เจคเฉเจฐ 'เจคเฉ เจเจธ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจเจชเจฃเจพ เจคเจฐเฉเจเจพ เจฒเฉฑเจญ เจฒเฉเจฃเจเฉ, เจชเจฐ เจ เจธเฉเจ เจเจชเจฃเฉ เจตเจฟเจเจพเจฐเจพเจ เจฆเฉ เจเจชเจฃเฉ เจเฉเจฃ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉ - เจเฉ เจเฉ เจเจฟเจธเฉ เจจเฉเฉฐ เจเจธเจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจชเจฐ เจชเฉเจฐเจธเจผ เจจเจนเฉเจ เจเจพเจฃเจฆเฉ?
- เจเจชเจฃเฉ เจธเจงเจพเจฐเจจ เจตเฉเจฌเจธเจพเจเจ, เจชเฉเจฐเจเจซเฉเจฒเฉเจ, เจเฉเจก เจจเจพเจฒ เจฐเฉเจเจผเจฟเจเจฎเฉ เจเจฆเจฟ เจฐเฉฑเจเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจคเฉเจนเจพเจกเฉ เจเจชเจฃเฉ เจกเจฟเจเจผเจพเจเจจ เจเฉเจคเฉ เจตเฉเฉฑเจฌเจธเจพเจเจ เจฎเจพเจฒเจ 'เจคเฉ เจธเจเจพเจฐเจพเจคเจฎเจ เจชเฉเจฐเจญเจพเจต เจชเจพเจเจเจฆเฉ เจนเฉเฅค เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ VPS 'เจคเฉ เจฐเฉฑเจเฉ เจ เจคเฉ เจธเจพเจเจ เจฆเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจ เจคเฉ เจธเจฅเจฟเจฐเจคเจพ เจฒเจ เจเฉเจฆ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจฌเจฃเฉ, เจจเจพ เจเจฟ เจจเจฟเจฏเจฎเจค เจนเฉเจธเจเจฟเฉฐเจ เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ เจฆเฉ เจธเจเจพเจซ เจฆเฉเจเจฐเจพเฅค
- เจตเจฟเจฆเจฟเจ เจ เจเจฆเฉเจธเจผเจพเจ เจฒเจ VPS เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ: เจเจชเจฃเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉ เจฎเฉเจเจผเจฌเจพเจจเฉ เจเจฐเฉ, เจธเจฐเจตเจฐ เจ เจคเฉ เจธเจฐเจตเจฐ เจเจชเจฐเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเจพ เจ เจงเจฟเจเจจ เจเจฐเฉ, DNS เจจเจพเจฒ เจชเฉเจฐเจฏเฉเจ เจเจฐเฉ, เจเฉฑเจ เจเฉเจเฉ เจตเจฟเจฆเจฟเจ เจ เจธเจพเจเจ เจจเจพเจฒ เจเจฟเฉฐเจเจฐ เจเจฐเฉเฅค
- เจเฉเจฒเฉเจซเฉเจจ เจฒเจเฅค เจเจ เจตเจพเจฐ เจเฉฑเจ เจตเจฟเจ เจเจคเฉเจเจค เจเจฆเจฏเฉเจเจชเจคเฉ, เจซเฉเจฐเฉเจฒเจพเจเจธเจฐ เจเจพเจ เจเฉฑเจ เจฌเจนเฉเจค เจเฉเจเฉ เจเฉฐเจชเจจเฉ เจจเฉเฉฐ เจเจเจชเฉ เจเฉเจฒเฉเจซเฉเจจเฉ เจฆเฉ เจธเจเจผเจค เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจธ เจเฉเจฒเฉเจซเฉเจจเฉ เจฆเฉ เจธเฉฐเจเจพเจฒเจ เจฌเจนเฉเจค เจฒเจพเจฒเจเฉ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจเจน เจธเจงเจพเจฐเจจ เจนเฉ: เจ เจธเฉเจ เจเจชเจฃเจพ เจธเจฐเจตเจฐ เจฒเฉเจเจฆเฉ เจนเจพเจ, เจเฉฑเจ IP เจเฉเจฒเฉเจซเฉเจจเฉ เจเจชเจฐเฉเจเจฐ เจคเฉเจ เจเฉฑเจ เจจเฉฐเจฌเจฐ เจเจฐเฉเจฆเจฆเฉ เจนเจพเจ, เจเฉฑเจ เจตเจฐเจเฉเจ เจฒ PBX เจธเฉเจ เจ เจช เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจ เฉฐเจฆเจฐเฉเจจเฉ เจจเฉฐเจฌเจฐ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ (เจเฉ เจฒเฉเฉ เจนเฉเจตเฉ)เฅค เจฌเฉฑเจเจคเจพเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจนเจจเฅค
- เจเจชเจฃเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ เจธเจฐเจตเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเฅค
- DIY เจชเฉเจฐเจฏเฉเจเจพเจ เจฒเจ เจธเจฐเจตเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจฎเจพเจฐเจ เจนเฉเจฎ เจธเจฟเจธเจเจฎ เจธเฉเจเจธเจฐเจพเจ เจคเฉเจ เจกเจพเจเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเจฐเจจเจพ เจ เจคเฉ เจเจเฉฑเจ เจพ เจเจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฅค
- เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจเฉฑเจ เจ เจธเจพเจงเจพเจฐเจจ เจคเจฐเฉเจเจพ เจนเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจเฉฑเจ เจตเจฐเจเฉเจ เจฒ เจเจเจธเจเฉเจเจ เจเฉเจฐเฉเจกเจฟเฉฐเจ เจธเจนเจพเจเจ, เจเฉฑเจ เจตเจชเจพเจฐเจ เจฐเฉเจฌเฉเจ, เจฒเจเจพเจเจฃเจพเฅค เจคเฉเจธเฉเจ เจธเจฐเจตเจฐ เจฆเฉ เจธเจฅเจฟเจฐเจคเจพ เจ เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจฒเจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉเจตเฉเจเฉ, เจเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจเจพเจ เจฌเจพเจเจผเจพเจฐเจพเจ 'เจคเฉ เจตเจชเจพเจฐ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจธเจพเจงเจจ เจชเฉเจฐเจพเจชเจค เจนเฉเจตเฉเจเจพเฅค เจเฉเจฐ, เจเฉ เจเฉเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเจพ เจนเฉ เจเจพเจ เจฏเฉเจเจจเจพ เจฌเจฃเจพ เจฐเจฟเจนเจพ เจนเฉ :)
เจเจพเจฐเจชเฉเจฐเฉเจ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจ เจเจฟเจนเฉ VPS เจฒเจ เจ เจฐเจเจผเฉเจเจ เจนเจจเฅค เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฆเฉฑเจธเฉ เจเจ เจเฉเจฒเฉเจซเฉเจจ เจธเฉเจตเจพ เจคเฉเจ เจเจฒเจพเจตเจพ, เจคเฉเจธเฉเจ เจเจ เจฆเจฟเจฒเจเจธเจช เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ. เจเจฆเจพเจนเจฐเจฃ เจฒเจ:
- เจเฉเจเฉ เจกเฉเจเจพเจฌเฉเจธ เจ เจคเฉ เจเจพเจฃเจเจพเจฐเฉ เจฐเฉฑเจเฉ เจเฉ เจฆเฉเจฐเฉ 'เจคเฉ เจฏเจพเจคเจฐเจพ เจเจฐเจจ เจตเจพเจฒเฉ เจเจฐเจฎเจเจพเจฐเฉเจเจ เจฒเจ เจชเจนเฉเฉฐเจเจฏเฉเจ เจนเฉเจตเฉเจเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, ftp เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจเฅค เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจนเฉเจค เจคเฉเจเจผเฉ เจจเจพเจฒ เจคเจพเจเจผเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ, เจธเฉเจฒเจเจผ เจฒเฉเจเจพเจ เจฒเจ เจ เฉฑเจชเจกเฉเจ เจเฉเจคเฉเจเจ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ, เจชเฉเจธเจผเจเจพเจฐเฉเจเจ เจเจฆเจฟ เจฆเจพ เจเจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเฉเจตเฉเจเจพเฅค
- เจธเฉเจซเจเจตเฉเจ เจฐ เจเจพเจ เจฎเฉเจกเฉเจ เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐเจจ เจฒเจ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจเจพเจ เจเจพเจนเจเจพเจ เจจเฉเฉฐ เจ เจธเจฅเจพเจ เจชเจนเฉเฉฐเจ เจฆเจฟเจเฅค
30 เจฐเฉเจฌเจฒ เจฒเจ VPS เจเฉเจธเจ เจกเจฐเจพเจเจต - เจคเฉเจนเจพเจกเฉ เจฒเจ เจเฉเจคเจพ เจเจฟเจ
30 เจฐเฉเจฌเจฒ เจเฉฐเจจเฉ เจเฉฑเจ เจนเจจ เจเจฟ เจคเฉเจธเฉเจ เจญเฉเจเจคเจพเจจ เจเจฐเจจ เจ เจคเฉ เจเฉเจธเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเจพเจฐเจก เจตเฉ เจจเจนเฉเจ เจฒเฉเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉเฅค เจ เจธเฉเจ เจเจ เจตเจพเจฐ เจฌเจนเฉเจค เจเจฒเจธเฉ เจตเฉ เจนเฉเฉฐเจฆเฉ เจนเจพเจ, เจชเจฐ เจเจธ เจตเจพเจฐ เจ เจธเฉเจ เจคเฉเจนเจพเจกเฉ เจฒเจ เจธเจญ เจเฉเจ เจเฉเจคเจพ เจนเฉเฅค เจธเจฐเจตเจฐเจพเจ เจจเฉเฉฐ เจฒเฉเจพเจ เจตเจฟเฉฑเจ เจฒเจพเจเจ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจ เจธเฉเจ เจธเจพเจฐเฉ เจตเฉเจฐเจตเจฟเจเจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจ เจคเฉ เจเจน เจฆเจฐเจธเจพเจเจฃ เจฒเจ เจเฉฑเจ เจเฉเจธเจ เจเฉเจคเจพ เจเจฟ เจธเจฐเจตเจฐ เจเจธ เจเฉเจฐเจฟเจซ เจตเจฟเฉฑเจ เจเฉ เจธเจฎเจฐเฉฑเจฅ เจนเจจเฅค เจเจธ เจจเฉเฉฐ เจนเฉเจฐ เจฆเจฟเจฒเจเจธเจช เจฌเจฃเจพเจเจฃ เจฒเจ, เจ เจธเฉเจ เจ เจคเจฟเจ เฉฐเจค เจเฉเฉเจฟเจ เจ เจคเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจฟ เจเจน เจธเฉฐเจฐเจเจจเจพ เจเจฟเจตเฉเจ เจตเจฟเจตเจนเจพเจฐ เจเจฐเฉเจเฉ เจเฉเจเจฐ เจเจฃเจคเจพ เจ เจคเฉ เจฒเฉเจก เจธเจพเจกเฉ เจฆเฉเจเจฐเจพ เจธเฉเฉฑเจ เจเฉเจคเฉ เจฎเฉเฉฑเจฒเจพเจ เจคเฉเจ เจตเฉฑเจง เจเจพเจเจฆเฉ เจนเจจเฅค
เจนเฉเจธเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจญเจพเจฐ เจนเฉเจ เจธเฉ เจเฉ เจชเฉเจฐเฉเจธเฉเจธเจฐ 'เจคเฉ เจตเฉฑเจ-เจตเฉฑเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจธเจจ เจ เจคเฉ เจกเจฟเจธเจ เจธเจฌ-เจธเจฟเจธเจเจฎ เจฆเฉ เจธเจฐเจเจฐเจฎเฉ เจจเจพเจฒ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจจเฅค เจเฉเจเจพ เจชเจฒเฉเจธเจฎเฉเจเจ เจฆเฉ เจเฉฑเจ เจเจฃเจคเจพ เจ เจคเฉ เจฒเฉเจพเจ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจเจพเจ เจเจธ เจคเฉเจ เจตเฉฑเจง เจฒเฉเจก เจฆเฉ เจจเจเจฒ เจเจฐเจจเจพ เจนเฉเฅค
เจจเจฟเจฐเฉฐเจคเจฐ เจฒเฉเจก เจคเฉเจ เจเจฒเจพเจตเจพ, เจ เจธเฉเจ 3 เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเฉเจเจ เจนเจจ เจเฉ เจธเจฟเจธเจฌเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจฟเฉฐเจฅเฉเจเจฟเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจเจเฉฑเจคเจฐ เจเจฐเจฆเฉเจเจ เจนเจจ, เจเจฟเจธ เจฆเฉ เจเจธเจค เจจเจคเฉเจเฉ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจ เจนเจจ, เจ เจคเฉ 50 เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจเฉ เจตเจพเจงเฉ เจฒเฉเจก เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจเฅค เจธเจพเจฐเฉเจเจ เจเฉเจธเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจเฉฑเจเฉ เจเจฟเจนเฉ เจธเฉฐเจฐเจเจจเจพ เจธเฉ (1 เจเฉเจฐ, RAM 512 GB, SSD 10 GB), เจธเจเฉเจเจกเจฐเจก เจกเฉเจฌเฉเจ เจจ 9.6 เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจเจชเจฐเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจตเจเฉเจ เจเฉเจฃเจฟเจ เจเจฟเจ เจธเฉ, เจเฉ เจเจฟ RUVDS 'เจคเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจชเฉเจธเจผ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจฒเฉเจก เจเฉเจฆเจฐเจค เจตเจฟเฉฑเจ เจธเจฟเจฎเฉเจฒเฉเจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ เจ เจคเฉ เจฒเฉเจพเจ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจฆเฉ เจคเฉเจฌเจฐเจคเจพ:
- เจเฉเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจเฉฑเจ เจฒเฉเจก เจจเจพเจฒ เจฒเจพเจเจ เจเฉเจคเฉเจเจ เจเจเจเจ เจธเจจ
- เจเฉเจ เจฎเจธเจผเฉเจจเจพเจ เจจเฉ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจเฉฑเจคเฉ เจฒเฉเจก เจฆเฉ เจจเจเจฒ เจเจฐเจฆเฉ เจนเฉเจ เจเฉฑเจ เจเฉเจธเจ เจธเจเฉเจฐเจฟเจชเจ เจเจฒเจพเจ (เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ
เจคเจฃเจพเจ ) - เจตเจฐเจเฉเจ
เจฒ เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจฌเจพเจเฉ เจฌเจเฉ เจนเจฟเฉฑเจธเฉ 'เจคเฉ, เจ
เจธเฉเจ เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจเจฒเจพเจ เจเฉ เจชเฉเจตเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเฉฑเจ เจธเฉเจฎเจพ เจธเฉเฉฑเจ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเจต-เจคเจฟเจเจฐ เจกเฉเจเจพ เจคเฉเจ เจกเจฟเจธเจ เจตเจฟเฉฑเจ เจกเจพเจเจพ เจเจพเจชเฉ เจเจฐเจจ เจฒเจ dd เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ (เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเฉเจเฉเจเจ เจเจพ เจธเจเจฆเฉเจเจ เจนเจจเฅค
เจเฉฑเจฅเฉ ะธเจเฉฑเจฅเฉ ).
เจจเจพเจฒ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจฏเจพเจฆ เจนเฉ, เจธเจพเจกเฉ เจเฉเจฒ เจคเจฟเฉฐเจจ เจฎเจธเจผเฉเจจเจพเจ เจธเจจ เจเฉ เจธเจฟเฉฐเจฅเฉเจเจฟเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจเจเฉฑเจ เฉเจเจ เจเจฐเจฆเฉเจเจ เจธเจจเฅค
เจนเจฐเฉเจ เจฎเจธเจผเฉเจจ 'เจคเฉ, เจนเจฐ 15 เจฎเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเฉฑเจเจฐ เจจเจพเจฒ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจธเฉ, เจเฉ เจชเฉเจฐเฉเจธเฉเจธเจฐ, เจฎเฉเจฎเฉเจฐเฉ เจ เจคเฉ เจกเจฟเจธเจ เจฒเจ เจฎเจฟเจเจฐเฉ เจธเจฟเจธเจฌเฉเจเจ เจเฉเจธเจ เจเจฒเจพเจเจเจฆเจพ เจนเฉเฅค
เจธเจเฉเจฐเจฟเจชเจ sysbench.sh
#!/bin/bash
date +"%Y-%m-%d %H:%M:%S" >> /root/sysbench/results.txt
sysbench --test=cpu run >> /root/sysbench/results.txt
sysbench --test=memory run >> /root/sysbench/results.txt
sysbench --test=fileio --file-test-mode=seqwr run >> /root/sysbench/results.txt
sysbench --test=fileio --file-test-mode=seqrd run >> /root/sysbench/results.txt
sysbench --test=fileio --file-test-mode=rndrw run >> /root/sysbench/results.txt
เจจเจคเฉเจเฉ sysbench เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจธเจนเฉเจฒเจค เจฒเจ เจชเฉเจธเจผ เจเฉเจคเฉ เจเจ เจนเจจ, เจชเจฐ เจธเจพเจฐเฉ เจเฉเจธเจเจฟเฉฐเจ เจฎเจฟเจเจฆ เจฒเจ เจเจธเจค เจฎเฉเฉฑเจฒ เจธเจพเจฐเฉเจเจ เจฎเจธเจผเฉเจจเจพเจ เจคเฉเจ เจฒเจ เจเจ เจนเจจ, เจจเจคเฉเจเจพ เจเฉฑเจฅเฉ เจฆเฉเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
Sysbanch-avg.txtsysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 10000
Test execution summary:
total time: 19.2244s
total number of events: 10000
total time taken by event execution: 19.2104
per-request statistics:
min: 1.43ms
avg: 1.92ms
max: 47.00ms
approx. 95 percentile: 3.02ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 19.2104/0.00
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing memory operations speed test
Memory block size: 1K
Memory transfer size: 102400M
Memory operations type: write
Memory scope type: global
Threads started!
Done.
Operations performed: 104857600 (328001.79 ops/sec)
102400.00 MB transferred (320.32 MB/sec)
Test execution summary:
total time: 320.9155s
total number of events: 104857600
total time taken by event execution: 244.8399
per-request statistics:
min: 0.00ms
avg: 0.00ms
max: 139.41ms
approx. 95 percentile: 0.00ms
Threads fairness:
events (avg/stddev): 104857600.0000/0.00
execution time (avg/stddev): 244.8399/0.00
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential write (creation) test
Threads started!
Done.
Operations performed: 0 Read, 131072 Write, 128 Other = 131200 Total
Read 0b Written 2Gb Total transferred 2Gb (320.1Mb/sec)
20251.32 Requests/sec executed
Test execution summary:
total time: 6.9972s
total number of events: 131072
total time taken by event execution: 5.2246
per-request statistics:
min: 0.01ms
avg: 0.04ms
max: 96.76ms
approx. 95 percentile: 0.03ms
Threads fairness:
events (avg/stddev): 131072.0000/0.00
execution time (avg/stddev): 5.2246/0.00
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential read test
Threads started!
Done.
Operations performed: 131072 Read, 0 Write, 0 Other = 131072 Total
Read 2Gb Written 0b Total transferred 2Gb (91.32Mb/sec)
5844.8 Requests/sec executed
Test execution summary:
total time: 23.1054s
total number of events: 131072
total time taken by event execution: 22.9933
per-request statistics:
min: 0.00ms
avg: 0.18ms
max: 295.75ms
approx. 95 percentile: 0.77ms
Threads fairness:
events (avg/stddev): 131072.0000/0.00
execution time (avg/stddev): 22.9933/0.00
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Number of random requests for random IO: 10000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Done.
Operations performed: 6000 Read, 4000 Write, 12800 Other = 22800 Total
Read 93.75Mb Written 62.5Mb Total transferred 156.25Mb (1341.5Kb/sec)
85.61 Requests/sec executed
Test execution summary:
total time: 152.9786s
total number of events: 10000
total time taken by event execution: 14.1879
per-request statistics:
min: 0.01ms
avg: 1.41ms
max: 210.22ms
approx. 95 percentile: 4.95ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 14.1879/0.00
เจจเจคเฉเจเฉ เจธเฉฐเจเฉเจคเจ เจนเจจ, เจชเจฐ เจซเจฟเจฐ เจตเฉ QoS เจตเจเฉเจ เจจเจนเฉเจ เจฒเจฟเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจฎเจธเจผเฉเจจเจพเจ เจเฉ เจตเจพเจงเฉ เจฒเฉเจก เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจ
เจธเจพเฉฑเจซเจเจตเฉเจ เจฐ:
- apt-get update
- apt-get เจ เฉฑเจชเจเจฐเฉเจก
- เจชเจพเจเจฅเจจ-เจชเจพเจเจช เจธเจฅเจพเจชเจค เจเจฐเฉ
- pip install mysql-connector-python-rf
เจฎเจพเจฐเฉเจเจกเฉเจฌเฉ เจธเจฅเจพเจชเจฟเจค, เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉ
apt-get install libmariadbclient-dev
mysql -e "INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';" -- ะฝัะถะฝะพ ะดะปั test_employees_sha
เจเฉเจธเจ เจฆเจพ เจเจงเจพเจฐ เจฒเจฟเจ
เจกเฉเจเจพเจฌเฉเจธ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจ
เจจเฉเจธเจพเจฐ เจคเฉเจจเจพเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ
mysql -t < employees.sql
mysql -t < test_employees_sha.sql
เจเฉเจเจพ เจเฉเจธเจ เจ เจงเจพเจฐ:
เจธเจพเจฐเจฃเฉ
เจเจคเจพเจฐเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ
เจกเจพเจเจพ เจเจเจพเจฐ (MB)
เจธเฉเจเจเจพเจเจ เจฆเจพ เจเจเจพเจฐ (KB)
เจตเจฟเจญเจพเจ
9
0.02
16.00
dept_emp
331143
11.52
5648.00
dept_manager
24
0.02
16.00
เจเจฐเจฎเจเจพเจฐเฉ
299379
14.52
0.00
เจคเจจเจเจพเจน
2838426
95.63
0.00
เจธเจฟเจฐเจฒเฉเจ
442783
19.56
0.00
เจชเจพเจเจฅเจจ เจตเจฟเฉฑเจ เจเฉเจกเฉ เจเฉฑเจคเฉ เจเฉฑเจ เจฎเฉเฉฑเจขเจฒเฉ เจเจพเจเจ เจธเฉเจตเจพ เจฒเจฟเจเฉ เจเจ เจนเฉ; เจเจน เจเจพเจฐ เจเจชเจฐเฉเจธเจผเจจ เจเจฐเจฆเฉ เจนเฉ:
- getState: เจธเจฅเจฟเจคเฉ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉ
- getEmployee: เจกเฉเจเจพเจฌเฉเจธ เจคเฉเจ เจเจฐเจฎเจเจพเจฐเฉเจเจ (+เจคเจจเจเจพเจน, +เจเจพเจเจเจฒ) เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉ
- patchEmployee: เจเจฐเจฎเจเจพเจฐเฉ เจเฉเจคเจฐ เจฌเจฆเจฒเจฆเจพ เจนเฉ
- insertSalary: เจคเจจเจเจพเจน เจธเจผเจพเจฎเจฒ เจเจฐเจฆเจพ เจนเฉ
เจธเฉเจตเจพ เจธเจฐเฉเจค (dbtest.py)
#!/usr/bin/python
import mysql.connector as mariadb
from flask import Flask, json, request, abort
from mysql.connector.constants import ClientFlag
app = Flask(__name__)
def getFields(cursor):
results = {}
column = 0
for d in cursor.description:
results[d[0]] = column
column = column + 1
return results
PAGE_SIZE = 30
@app.route("/")
def main():
return "Hello!"
@app.route("/employees/<page>", methods=['GET'])
def getEmployees(page):
offset = (int(page) - 1) * PAGE_SIZE
connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees')
cursor = connection.cursor()
cursor.execute("SELECT * FROM employees LIMIT {} OFFSET {}".format(PAGE_SIZE, offset))
return {'employees': [i[0] for i in cursor.fetchall()]}
@app.route("/employee/<id>", methods=['GET'])
def getEmployee(id):
id = int(id)
connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees')
cursor = connection.cursor()
cursor.execute("SELECT * FROM employees WHERE emp_no = {}".format(id))
fields = getFields(cursor)
employee = {}
found = False
for row in cursor.fetchall():
found = True
employee = {
"birth_date": row[fields["birth_date"]],
"first_name": row[fields["first_name"]],
"last_name": row[fields["last_name"]],
"gender": row[fields["gender"]],
"hire_date": row[fields["hire_date"]]
}
if not found:
abort(404)
cursor.execute("SELECT * FROM salaries WHERE emp_no = {}".format(id))
fields = getFields(cursor)
salaries = []
for row in cursor.fetchall():
salary = {
"salary": row[fields["salary"]],
"from_date": row[fields["from_date"]],
"to_date": row[fields["to_date"]]
}
salaries.append(salary)
employee["salaries"] = salaries
cursor.execute("SELECT * FROM titles WHERE emp_no = {}".format(id))
fields = getFields(cursor)
titles = []
for row in cursor.fetchall():
title = {
"title": row[fields["title"]],
"from_date": row[fields["from_date"]],
"to_date": row[fields["to_date"]]
}
titles.append(title)
employee["titles"] = titles
return json.dumps({
"status": "success",
"employee": employee
})
def isFieldValid(t, v):
if t == "employee":
return v in ["birdth_date", "first_name", "last_name", "hire_date"]
else:
return false
@app.route("/employee/<id>", methods=['PATCH'])
def setEmployee(id):
id = int(id)
content = request.json
print(content)
setList = ""
data = []
for k, v in content.iteritems():
if not isFieldValid("employee", k):
continue
if setList != "":
setList = setList + ", "
setList = setList + k + "=%s"
data.append(v)
data.append(id)
print(setList)
print(data)
connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees', client_flags=[ClientFlag.FOUND_ROWS])
cursor = connection.cursor()
cursor.execute("UPDATE employees SET {} WHERE emp_no = %s".format(setList), data)
connection.commit()
if cursor.rowcount < 1:
abort(404)
return json.dumps({
"status": "success"
})
@app.route("/salary", methods=['PUT'])
def putSalary():
content = request.json
print(content)
connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees', client_flags=[ClientFlag.FOUND_ROWS])
cursor = connection.cursor()
data = [content["emp_no"], content["salary"], content["from_date"], content["to_date"]]
cursor.execute("INSERT INTO salaries (emp_no, salary, from_date, to_date) VALUES (%s, %s, %s, %s)", data)
connection.commit()
return json.dumps({
"status": "success"
})
@app.route("/state", methods=['GET'])
def getState():
return json.dumps({
"status": "success",
"state": "working"
})
if __name__ == '__main__':
app.run(host='0.0.0.0',port='5002')
เจธเจพเจตเจงเจพเจจ เจเจฟเจธเฉ เจตเฉ เจนเจพเจฒเจค เจตเจฟเฉฑเจ เจเจธ เจธเฉเจตเจพ เจจเฉเฉฐ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจเจพเจ เจฎเจพเจฐเจเจฆเจฐเจธเจผเจ เจตเจเฉเจ เจจเจนเฉเจ เจฒเจฟเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ!
เจเฉฐเจเฉ เจชเฉเจฐเจพเจฃเฉ เจเฉเจฎเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจธเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค 15 เจฎเจฟเฉฐเจเจพเจ เจคเฉเจ 2 เจเฉฐเจเฉ เจคเฉฑเจ เจเฉฑเจฒเจฃ เจตเจพเจฒเฉ เจเฉเจธเจเจพเจ เจฆเฉ เจเฉฑเจ เจฒเฉเฉ เจธเจผเฉเจฐเฉ เจเฉเจคเฉ เจเจ เจธเฉ, เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจฐเฉเจเจพเจตเจ เจฆเฉ, เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจชเฉเจฐเจคเฉเจธเจผเจคเจคเจพ เจตเฉฑเจเฉ-เจตเฉฑเจเจฐเฉ เจธเฉ, เจ เจคเฉ เจฅเฉเจฐเฉเจชเฉเฉฑเจ 300 เจคเฉเจ 600 เจฌเฉเจจเจคเฉเจเจ เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจคเฉฑเจ เจตเฉฑเจเฉ-เจตเฉฑเจเจฐเฉ เจธเฉเฅค 50 เจคเฉเจ 500 เจคเฉฑเจ เจฅเจฐเจฟเฉฑเจกเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจเฅค
เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจเจฟ เจกเฉเจเจพเจฌเฉเจธ เจฌเจนเฉเจค เจเฉเจเจพ เจนเฉ, เจเจฎเจพเจเจก:
mysql -e "SHOW ENGINE INNODB STATUS"
เจเจน เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉ:
Buffer pool hit rate 923 / 1000, young-making rate 29 / 1000 not 32 / 1000
เจนเฉเจ เจพเจ เจฌเฉเจจเจคเฉเจเจ เจฒเจ เจเจธเจค เจเจตเจพเจฌ เจธเจฎเจพเจ เจนเฉ:
เจฒเฉเจฌเจฒ
เจเจธเจค
เจฎเฉฑเจงเจฎเจพเจจ
90% เจฒเจพเจเจจ
95% เจฒเจพเจเจจ
99% เจฒเจพเจเจจ
เจฎเจฟเจจ
เจฎเฉเจเจธ
เจเจฐเจฎเจเจพเจฐเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเฉ
37.64
12.57
62.28
128.5
497.57
5
4151.78
เจธเจเฉเจ
17
7.57
30.14
58.71
193
3
2814.71
เจชเฉเจ เจเจฐเจฎเจเจพเจฐเฉ
161.42
83.29
308
492.57
1845.14
5
6639.4
เจคเจจเจเจพเจน เจชเจพเจ
167.21
86.93
315.34
501.07
1927.12
7
6722.44
เจเจนเจจเจพเจ เจธเจฟเฉฐเจฅเฉเจเจฟเจ เจจเจคเฉเจเจฟเจเจ เจคเฉเจ เจเจน เจจเจฟเจฐเจฃเจพ เจเจฐเจจเจพ เจคเฉเจนเจพเจกเฉ เจฒเจ เจเจเจพ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจเจน VPS เจคเฉเจนเจพเจกเฉ เจเจพเจธ เจเจพเจฐเจเจพเจ เจฒเจ เจเจฟเฉฐเจจเจพ เจขเฉเจเจตเจพเจ เจนเฉ เจ
เจคเฉ, เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจธเฉเจเฉเจฌเฉฑเจง เจคเจฐเฉเจเฉ เจเจนเจจเจพเจ เจฎเจพเจฎเจฒเจฟเจเจ เจคเฉฑเจ เจธเฉเจฎเจฟเจค เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจจเจพเจฒ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจเจพเจ เจฆเฉเจเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจจเจเจฟเฉฑเจ เจฃเจพ เจชเจฟเจ เจธเฉ, เจเจธ เจฒเจ เจธเจพเจกเฉ เจธเฉเจเฉ เจนเฉ. เจธเจชเฉฑเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจธเฉฐเจชเฉเจฐเจจ เจจเจนเฉเจเฅค เจ
เจธเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจธเจฟเฉฑเจเฉ เจเฉฑเจขเจฃ เจ
เจคเฉ เจคเฉเจนเจพเจกเฉเจเจ เจ
เจธเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจ
เจคเฉ เจเจพเจฐเจเจพเจ 'เจคเฉ 30 เจฐเฉเจฌเจฒ เจฒเจ เจธเจฐเจตเจฐ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจ
เจคเฉ เจเจฟเฉฑเจชเจฃเฉเจเจ เจตเจฟเฉฑเจ เจเจธ เจธเฉฐเจฐเจเจจเจพ เจฒเจ เจเจชเจฃเฉ เจตเจฟเจเจฒเจชเจพเจ เจฆเจพ เจธเฉเจเจพเจ
เจฆเฉเจฃ เจฒเจ เจธเฉฑเจฆเจพ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจเฅค
เจธเจฐเฉเจค: www.habr.com