โจทย์ของผมวันนี้คือจะส่งไฟล์ขนาด 1TB ที่จะถูกสร้างขึ้นมาทุกๆ วัน ข้าม WAN Network ขนาด 40mbps อย่างไรให้ทันในทุกๆ วัน
หากคำนวณแบบง่าย 1TB จะมีขนาดเท่ากับ 1,024 x 1024 x 8 = 8,388,608 Megabits
ถ้าต้องผ่านเครือข่าย ความเร็ว 40mbps จะต้องถูกตัด ค่า Overhead ราวๆ 25% จะเหลือ 30mbps
ถ้าเอามาคำนวณจะได้ระยะเวลาราวๆ 8,388,608 / 30 / 60 (second) / 60 (minutes) = 77.7 ชั่วโมง
มองในมุมกลับกัน ถ้า เรามีท่อแค่ 40mbps เราจะส่งข้อมูลให้ทัน 1 วัน เราจะส่งได้มากที่สุด เท่าไหร่
คิดได้เป็น 30mbps x 60 (second) x 60 (minutes) x 24 (hours) = 2,592,000 mbits
หรือคิดเป็น 2,592,000 / 8 (bit) = 324,000 MB หรือราวๆ 317GB เท่านั้น
ดังนั้นจากสัดส่วนที่ แสดงให้เห็น ผมจะต้องย่อข้อมูลลง ให้เหลือน้อยกว่า 300GB ถึงจะสามารถส่งได้ทันในหนึ่งวัน ผมเลยทำการทดสอบด้วยการใช้ compress แบบต่างๆ ได้ผลลัพธ์ ดังนี้
(Source)
5,748,339,200 Nov 19 23:07 DBBCK_001
(1)
root@dbsrv01:/dbbackup# time gzip -1 -c DBBCK_001 > DBBCK_001.gz
real 1m38.509s
user 1m31.384s
sys 0m6.913s
(2)
root@dbsrv01:/dbbackup# time bzip2 -c -1 DBBCK_001 > DBBCK_001.bz2
real 7m18.341s
user 7m14.043s
sys 0m4.245s
(3)
root@dbsrv01:/dbbackup# time 7z a -t7z -m0=lzma -mx=1 -mfb=64 -md=32m -ms=on DBBCK_001.7z DBBCK_001
real 10m2.367s
user 9m57.683s
sys 0m4.622s
(4)
root@dbsrv01:/dbbackup# time 7z a -t7z -mx=1 -mmt=off DBBCK_001.7z2 DBBCK_001
real 4m12.914s
user 4m8.968s
sys 0m3.925s
(Result)
1,587,538,958 Nov 20 19:55 DBBCK_001.gz
1,212,956,103 Nov 20 20:16 DBBCK_001.bz2
899,237,632 Nov 20 20:45 DBBCK_001.7z
967,667,885 Nov 20 20:58 DBBCK_001.7z2
จะเห็นว่า 7z ใช้เวลานานกว่า gzip ถึงสองเท่า แต่ทำให้ขนาดลดลงได้มากกว่าราวๆ 30% และด้วยสัดส่วนนี้ ถ้าไฟล์ทั้งหมด ถูกลดขนาดลงไป เหลือเพียง 17-20% นั่นหมายความว่า ผมจะมีไฟล์ต้นทางที่ใช้ในการส่งจริงเพียง 200GB เท่านั้น
อันนี้เป็นตัวอย่างพื้นฐานในการแก้ปัญหา การส่งไฟล์ขนาดใหญ่ข้าม เครือข่าย นะครับ ในการทำงานจริง ผมยังใช้ คุณสมบัติอีกหลายอย่าง ช่วยเช่น Deduplication, Compression ให้มาทำงานร่วมกัน ส่งผลให้ สามารถย่อข้อมูลบางครั้ง เหลือเพียง 5-10% เท่านั้น
แล้วเจอกันใหม่ครับ ขอให้สนุกกับการทำงาน
Lek Noi~
ขอขอบคุณบทความดีๆๆจากMOM I'M HUNGRY
อ้างอิงเนื้อหาจาก:https://www.facebook.com/notes/mom-im-hungry/%E0%B8%AA%E0%B9%88%E0%B8%87%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C%E0%B8%82%E0%B8%99%E0%B8%B2%E0%B8%94-1tb-%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B8%A1%E0%B9%80%E0%B8%84%E0%B8%A3%E0%B8%B7%E0%B8%AD%E0%B8%82%E0%B9%88%E0%B8%B2%E0%B8%A2-40mbps-%E0%B8%97%E0%B8%B8%E0%B8%81%E0%B8%A7%E0%B8%B1%E0%B8%99-%E0%B8%97%E0%B8%B3%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3/1966501683427399/
หากคำนวณแบบง่าย 1TB จะมีขนาดเท่ากับ 1,024 x 1024 x 8 = 8,388,608 Megabits
ถ้าต้องผ่านเครือข่าย ความเร็ว 40mbps จะต้องถูกตัด ค่า Overhead ราวๆ 25% จะเหลือ 30mbps
ถ้าเอามาคำนวณจะได้ระยะเวลาราวๆ 8,388,608 / 30 / 60 (second) / 60 (minutes) = 77.7 ชั่วโมง
มองในมุมกลับกัน ถ้า เรามีท่อแค่ 40mbps เราจะส่งข้อมูลให้ทัน 1 วัน เราจะส่งได้มากที่สุด เท่าไหร่
คิดได้เป็น 30mbps x 60 (second) x 60 (minutes) x 24 (hours) = 2,592,000 mbits
หรือคิดเป็น 2,592,000 / 8 (bit) = 324,000 MB หรือราวๆ 317GB เท่านั้น
ดังนั้นจากสัดส่วนที่ แสดงให้เห็น ผมจะต้องย่อข้อมูลลง ให้เหลือน้อยกว่า 300GB ถึงจะสามารถส่งได้ทันในหนึ่งวัน ผมเลยทำการทดสอบด้วยการใช้ compress แบบต่างๆ ได้ผลลัพธ์ ดังนี้
(Source)
5,748,339,200 Nov 19 23:07 DBBCK_001
(1)
root@dbsrv01:/dbbackup# time gzip -1 -c DBBCK_001 > DBBCK_001.gz
real 1m38.509s
user 1m31.384s
sys 0m6.913s
(2)
root@dbsrv01:/dbbackup# time bzip2 -c -1 DBBCK_001 > DBBCK_001.bz2
real 7m18.341s
user 7m14.043s
sys 0m4.245s
(3)
root@dbsrv01:/dbbackup# time 7z a -t7z -m0=lzma -mx=1 -mfb=64 -md=32m -ms=on DBBCK_001.7z DBBCK_001
real 10m2.367s
user 9m57.683s
sys 0m4.622s
(4)
root@dbsrv01:/dbbackup# time 7z a -t7z -mx=1 -mmt=off DBBCK_001.7z2 DBBCK_001
real 4m12.914s
user 4m8.968s
sys 0m3.925s
(Result)
1,587,538,958 Nov 20 19:55 DBBCK_001.gz
1,212,956,103 Nov 20 20:16 DBBCK_001.bz2
899,237,632 Nov 20 20:45 DBBCK_001.7z
967,667,885 Nov 20 20:58 DBBCK_001.7z2
จะเห็นว่า 7z ใช้เวลานานกว่า gzip ถึงสองเท่า แต่ทำให้ขนาดลดลงได้มากกว่าราวๆ 30% และด้วยสัดส่วนนี้ ถ้าไฟล์ทั้งหมด ถูกลดขนาดลงไป เหลือเพียง 17-20% นั่นหมายความว่า ผมจะมีไฟล์ต้นทางที่ใช้ในการส่งจริงเพียง 200GB เท่านั้น
อันนี้เป็นตัวอย่างพื้นฐานในการแก้ปัญหา การส่งไฟล์ขนาดใหญ่ข้าม เครือข่าย นะครับ ในการทำงานจริง ผมยังใช้ คุณสมบัติอีกหลายอย่าง ช่วยเช่น Deduplication, Compression ให้มาทำงานร่วมกัน ส่งผลให้ สามารถย่อข้อมูลบางครั้ง เหลือเพียง 5-10% เท่านั้น
แล้วเจอกันใหม่ครับ ขอให้สนุกกับการทำงาน
Lek Noi~
ขอขอบคุณบทความดีๆๆจากMOM I'M HUNGRY
อ้างอิงเนื้อหาจาก:https://www.facebook.com/notes/mom-im-hungry/%E0%B8%AA%E0%B9%88%E0%B8%87%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C%E0%B8%82%E0%B8%99%E0%B8%B2%E0%B8%94-1tb-%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B8%A1%E0%B9%80%E0%B8%84%E0%B8%A3%E0%B8%B7%E0%B8%AD%E0%B8%82%E0%B9%88%E0%B8%B2%E0%B8%A2-40mbps-%E0%B8%97%E0%B8%B8%E0%B8%81%E0%B8%A7%E0%B8%B1%E0%B8%99-%E0%B8%97%E0%B8%B3%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3/1966501683427399/
ความคิดเห็น
แสดงความคิดเห็น