มีวิธีง่ายๆ คือ บีบอัดข้อมูลที่ส่งระหว่าง web server และ browser ด้วย gzip เรียกว่า HTTP Compress
สมมุติว่าผมต้องการดู ไฟล์ .log ผ่าน browser ซึ่งมีขนาด 20 MB จะต้องใช้เวลา 3-5 นาที แล้วถ้าบีบอัดแล้วเหลือ 30 KB จะใช้เวลาไม่เกิน 10 วินาที
นอกจากประหยัดเวลาแล้ว ยังช่วยประหยัด bandwidth อีกด้วย
ถ้าเป็น Apache จะมี mod_gzip และ mod_deflate ให้ใช้อยู่แล้ว และก็มีมานานแล้ว
ส่วน IIS ล่ะ ก็มีเหมือนกันใน IIS4, IIS5 (เฉพาะรุ่น server) และมีข้อจำกัดว่าบีบอัดได้เฉพาะ static file เท่านั้น มีข้อจำกัดมากมาย และที่แย่กว่านั้นคือ bug เยอะมาก สรุปคือ มันห่วย!
สำหรับ IIS6 ล่ะbuild-in มาแล้ว แต่ก็ยังมีข้อจำกัดเยอะ เช่นเลือกไฟล์ที่จะบีบอัดไม่ได้ (อันที่จริงไม่มี interface ให้ใช้มากกว่า ทำไม่เสร็จหรือไง??) กรณีนี้มีวิธีดังนี้
ไปที่ C:\Inetpub\AdminScripts แล้วใช้
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "doc" "ppt" "xls
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "doc" "ppt" "xls"
IIS7 สามารถที่จะบีบอัดได้ทั้ง static, dynamic
ROI (Return On Investment)
เจอ ROI Calculator คำนวณเล่นๆว่า ถ้าผมทำ server เล่นๆที่บ้าน สมมุติว่าต้องเสียค่า bandwidth เดือนล่ะ 1200 บาท ($30) ที่ความเร็ว 1 MB กับ Server 1 ตัว (แหงสิ ได้ dynamic ip เดียวนี่…แต่เอาที่จริงมีวิธีให้ใช้หลายตัวได้ด้วย ip เดียวนะ) ตั้งให้บีบอัดไฟล์ ที่ 75% และ 25% สำหรับไฟล์พวกรูปภาพ
Total Customer Bandwidth Cost/Month $30
Costs of compressible bandwidth $23
Costs of uncompressible bandwidth $8
Total Customer Bandwidth Cost after PipeBoost Implementation $13
Implementation Costs $1,500
Savings Per Month $17
ROI (Return on Investment) 88.9 Month
ROI Annual Savings Yield 14%
จะประหยัดเดือนล่ะ $17 แน่ะ
ลองดูผลได้ทีนี่
HTTP Compress Player
ผู้นำในตลาดมีดังนี้
HTTPZip $300
TurboIIS $500
XCompress $400
PipeBoost $1500!!
HTTPZip มาแรงที่สุด ลองลงมาเป็น XCompress และ TurboIIS ตามลำดับ PipeBoost ไม่ค่อยเห็นใช้กันซักเท่าไหร่ คงเพราะราคาแพง และ feature ไม่เด่นพอเมื่อเพียบกับรายอื่นๆ
ทำไมต้องใช้ tools พวกนี้ ทั้งที่ IIS ก็มีอยู่แล้ว?? คำตอบคือ เพราะมันห่วย! config ลำบาก ปรับแต่งได้น้อย
tools พวกนี้สามารถที่จะกำหนดอัตราการบีบอัดไฟล์ได้ ควบคุมจัดสรร CPU ได้ดีกว่า ออก report ได้ มีระบบจัดการ cache ที่ดีกว่า (บางตัวมี in memory cache ด้วย) เป็นต้น
นี่สำหรับ WebServer ที่ใช้งานมาก และมองว่า http compress จะช่วยรองรับการใช้งานที่มากขึ้น ประหยัดค่าใช้จ่ายต่อ bandwidth และถึงแม้ว่าการบีบอัดนั้นจะใช้ cpu แต่ก็มีระบบ cache ที่ช่วยลดการประมวลผลที่ cpu ได้
Links
Speed Web delivery with HTTP compression (แนะนำ)
IIS Compression in IIS6.0 (แนะนำ)
A Quick Look at XCompress
Intel Blows Bandwidth
ROI Calculator
IIS 6.0 Compression with Windows Server 2003: Do More with Less
Web Site Compression
Using HTTP Compression On Your IIS 5.0 Web Site