ลดกันเห็นๆกับ ob_gzhandler

Thursday, August 14th, 2008

วันนี้ผมได้มีโอกาสลองของกับเว็บตัวเองอีกแล้วกับการใช้ ob_gzhandler ในเว็บไซต์ Mocyc.com

ก็เนื่องมาจากผมเองชอบโมเว็บอยากให้เว็บไซต์ใช้ทรัพยากรในเครื่องให้น้อยที่สุด เครื่อง Server ทำงานได้สบายที่สุด ดังนั้นในเว็บ Mocyc.com จึงได้มีการใช้แนวคิดการออกแบบหลายๆอย่างเช่น

  • ลดและเลี่ยงการใช้ Join Table Database ให้น้อยที่สุด หรือ ไม่ใช้เลย
  • เขียนสคริป Cache เพื่อลดอัตราการติดต่อกับ MySQL ดาต้าเบส

ซึ่งก็ได้ผลดีและทำให้ Server ที่ใช้งานอยู่นั้นทำงานได้สบายๆ ไม่หนักมากมายนัก

และล่าสุด เมื่อราวๆ บ่าย 2 ของวันที่ 14 สค. 51 ผมเองก็ได้จูนเว็บ Mocyc.com อีกครั้ง โดยการใช้งาน ob_gzhandler หรือใช้ความสามารถของ gzip ครับ

php_gzip.jpg

ดูจากกราฟนะครับ เมื่อวานยังไม่ได้ใช้งาน ob_gzhandler ลองเทียบกับวันนี้หลัง 15.00 น. ดูครับ CPU LOAD ลดลงเป็นครึ่งเลยครับ ว๊าววววว…..

ob_gzhandler หมายความว่า ในกรณีที่ browser ของเราสามารถอ่านเวปที่มีการบีบอัดได้ ( header ที่ส่ง request ไปยัง server จะมีคำว่า enable gzip) พอเจ้า php (ที่มีการระบุใน script ว่า ob start , ob_gzhandler ) รู้ว่า browser ของเราสามารถรับเวปที่มีการบีบอัดได้ มันจะส่ง html ที่มีการบีบอัดมาแทน ดังนั้น แทนที่จะส่งมา 50,000-200,000 ไบต์ มันก็จะเหลือมาแค่ 5,000-10,000 ไบต์ แล้วมาคลายที่เครื่องเราแทน

ก่อนที่จะเอาลองเทสบนเว็บ Mocyc.com ผมได้ลองเทสใน localhost ในเครื่อง โดยการคิวรี่ข้อมูลมาแสดงผลจำนวน 1,000 ข้อมูล ในกรณีที่ไม่ได้ใช้ ob_gzhandler ใช้เวลาประมาณ 0.001 - 0.0012 sec แต่เมื่อผมใช้ ob_gzhandler จะใช้เวลาเฉลี่ยประมาณ 0.0009 - 0.001 sec. ซึ่งเทียบแล้วก็คือไวกว่าปกติครับ ก็เลยนำมาทดสอบใน Mocyc.com เลยครับ ซึ่งก็ได้ผลดังกราฟครับ

การใช้งานก็ไม่มีอะไรมากมายเลยครับ ก็แค่ใช้คำสั่ง

ob_start(’ob_gzhandler’);
ในกรณีที่ต้องการให้มีการบีบอัดข้อมูล

ob_start();
ในกรณีที่ไม่ต้องการบีบอัดข้อมูล

เดี๋ยวลองดูผลต่อไป แต่จากการทดสอบดูแล้วค่อนข้างน่าพอใจมากครับกับการเพิ่มคำสั่งเพิ่มไปแค่นิดเดียว

หากลองสังเกตุจะเห็นว่าช่วง 4 ทุ่มจะสูง เพราะเป็นช่วงที่คนเข้าเว็บเยอะครับ ส่วนตอนช่วงเที่ยงคืน นั่นคือ ผมสั่งให้ระบบผมทำงานอัตธนมัติในการลบประกาศซื้อขายที่หมดอายุ รวมไปถึงจัดการระบบดาต้าเบสต่างๆ โดยผมเขียนโปรแกรมสั่งให้มันทำงานช่วง 00.00 น. ครับ

Editor's Talk!

สวัสดีคนที่หลงเดินทางเข้ามายัง Blog ของผม อาจจะด้วยความไม่ตั้งใจ หรือ ตั้งใจเข้ามาก็ตาม ก่อนอื่นผมก็ต้องขอออกตัวก่อนว่า Blog ของผมมันจะมีสาระบ้าง หรือ ไม่มีสาระเลย ก็แล้วแต่อารมณ์ช่วงไหนอยากเขียนอะไร อย่าเหมาว่า Blog ผมจะต้องมีแต่ความรู้เหมือน Blog ของคนอื่นๆ นะครับ
สำหรับ Blog นี้ ผมสามารถใช้คำพูดใดๆก็ได้ตามที่ผมเห็นสมควร เพราะมันคือ Blog ของกู(ผม) บางครั้งผมเขียนไปกระทบใครก็ขออภัยไว้ ณ. ที่นี้ด้วย ก็ไม่มีอะไรมากครับ ขอบคุณที่เข้ามาอ่าน Blog ของผมนะครับ

นายแม็ค

ค้นหา :