|
การจำกัด bandwidth ด้วย delay_pool ใน Squid 2.5 Stable ตอนที่ 1 |
|
|
|
|
|
issue date 2007-09-26 18:00 by charin chookham |
|
|
|
|
|
เราใช้ squid ในการให้บริการอินเตอร์เน็ตแก่เจ้าหน้าที่ในสำนักงานมาเกือบ 7-8 ปีแล้ว ตั้งแต่สมัย RedHat 5.5 ถือว่าเสถียรดีมาก แต่ด้วยระยะหลังการใช้งานมีความหลากหลายมากขึ้น ทำให้ต้องขยายขนาดความเร็วจาก Modem = > Leaseline 64 kbps = > 128 kbps => 512 kbps(ปัจจุบัน) ก็ยังไม่พอกับการใช้อยู่ดี เลยต้องมีการจำกัดบริการบ้างไม่ว่าจะเป็นการ Block การดาวน์โหลดทั้ง File และ Bittorrent ถึงเอาอยู่ แต่ก็ทำให้เจ้าหน้าที่เริ่มรู้และไม่พอใจ เลยต้องหาวิธีการใหม่ และเพิ่งจะมารู้ว่า Squid สามารถจัดการ Bandwidth ในตอนที่ 1 นี้เอาแบบง่าย ๆ ก่อน ผมเข้าใจว่าหลายคนเคยใช้ Squid อยู่แล้ว แค่เพียง Config เพิ่มไม่กี่บรรทัดดังนี้ก็เอาอยู่แล้ว |
|
|
หลักการคือ เราอนุญาตให้มีการ Download ทุกอย่าง เพียงแ่ต่จะมีการจำกัด Bandwidth ในการ Download เท่านั้น เพื่อแบ่งความเร็วไปให้คนอื่น ๆ ได้ใช้อินเตอร์เน็ตสืบค้นข้อมูลเร็วขึ้นเท่านั้น |
|
|
เดิมไฟด์ Config ของ Squid ส่วนใหญ่ก็ประมาณนี้ ซึ่งเราไม่ต้องไปแก้ไขอะไรมากดังนี้ |
|
############Squid.conf################# http_port 8080 #จะ block อะไรผมก็ใส่ตรงนี้(เดิม) acl blockfile url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl mynet src 192.168.1.0/255.255.255.0 #กลุ่ม IP LAN ภายในครับ #http_access deny blockfile เดิมทีผมใช้แบบนี้คือไม่ให้ Download เลย ให้แก้ไขโดยใส่ # หน้าบรรทัดนี้ไว้ http_access allow mynet http_access deny all #ตรงนี้เป็น Transparent ครับ httpd_accel_host virtual httpd_accel_port 0 httpd_accel_with_proxy on httpd_accel_uses_host_header on #บรรทัดที่ต้องเพิ่มใหม่ delay_pools 1 delay_class 1 1 delay_parameters 1 2500/2500 #ตรงนี้ครับที่ใช้จำกัดไม่เกิน 2.5 kbyte หากต้องการไม่เกิน 5.0 kbyte ก็เปลี่ยนเป็น 5000/5000 ไม่เกิน จะจำกัดเท่าไหร่ก็เปลี่ยนเอาเลยครับ delay_access 1 allow blockfile ########### End ################## |
|
|
|
ที่นี่ใครอยาก Download ก็เชิญได้เลยครับ แต่ได้ bandwidth ไม่เกิน 2.5 kbps เท่านั้น เห็นไหมครับว่าง่าย ๆ แค่นี้เอง แค่เพิ่ม 4 ท้ายเพิ่มเข้าไปในไฟล์ Squid.conf เดิมของท่านเท่านั้น(ผมเน้นตัวหนาเพื่อให้ท่านเห็นว่ามันสัมพันธ์กันอย่างไร) |
|
|
|
|
|
ตัวอย่างการ Download หลัง Config และ Restart Squid (โหดไปไหมนี่ ไฟล์แค่ 16 MB ต้องดาวน์โหลดตั้ง 2-3 ชั่วโมง) |
|
|
ความจริง deley_pool มีหลายแบบนะ คือ |