ถ้าใครพบว่าเว็บที่ทำด้วย wordpress ของตนเองนั้นโหลดช้า ? การทำ Cache นั้นเป็นสิ่งแรกที่ควรทำ แต่เนื่องจาก wordpress caching plugin มีหลายตัวจึงไม่รู้จะเลือกใช้ตัวไหนดี ลองมาดู รีวิว plug-in ต่างๆ เพื่อที่จะได้นำไปใช้ได้ตามความเหมาะสมของเว็บกันครับ
Caching คืออะไร
ทุกๆครั้งที่เราเข้าไปเว็บ ทาง server จะทำกระบวณการมากมาย ตั้งแต่ excute php, php เองก็ ไปดึงข้อมูลจาก database ผลลัพท์สุดท้ายออกมาเป็น html ให้เราเห็นกัน ซึ่งขั้นตอนต่างๆ เหล่านี้บางทีเกิดขึ้น 20-200 ครั้งต่อหน้า! ซึ่งเป็นตัวการที่ทำให้เว็บช้า
การทำ cache หรือ caching ก็คือ คนแรกที่เข้ามา Server ก็ทำตามกระบวนการที่ได้กล่าวมาขั้นต้นเหมือนกันแต่เก็บผลลัพท์ไว้ ถ้าเกิดมีคนอื่นเข้ามาหน้าเดียวกันอีก Server ก็จะส่งผลลัพท์ที่เก็บไว้ให้เลย
ตัวอย่างที่นำมาทดสอบ
- ใช้ Apache Benchmark ในการทำ Benchmark
- ใช้ WordPress 2.9.1 โดยติดตั้ง plugins Akismet, All in One SEO Pack และ Google XML Sitemaps
- เว็บรันอยู่ shared server ที่มี traffic ปกติเพื่อให้การทำ benchmarks ไม่โดนรบกวนและให้เหมือนกับเว็บทั่วไปที่รันอยู่บน share server เหมือนกัน
- ทดลองโดยส่ง 1000 request จาก 10 ที่พร้อมกัน ส่งไป 3 ครั้ง แต่ละครั้งคนละเวลา(อาจจะเป็น เช้า เย็น กลางคืน) แล้วนำผลเฉลี่ยของทั้ง 3 ครั้งมาคิด
- เว็บประกอบด้วย เนื้อหาโดยประมาณ, ภาพ, js และstylesheet ดังภาพข้างล่าง
ไม่มี cache
เริ่มต้นจากการ ไม่ได้ทำ cache เลย เพื่อที่จะได้นำไปเปรียบเทียบกับการติดตั้ง caching plug-in ต่างๆ
จากรูปจะเห็นได้ว่าใน 1 วินาที server จัดการได้ 13.96 requests เท่านั้น
WP-Cache
http://wordpress.org/extend/plugins/wp-cache/
WP-Cache เป็น plug-in ที่ใช้และ install ง่าย แต่ plug-in ตัวนี้ได้ลง ไฟล์บางไฟล์ไว้นอกโฟรเดอร์ plugin ซึ่งอาจทำให้เกิด “sem-get” error ได้เวลาเรา uninstall วิธีแก้ก็คือเข้าไปที่ wp-content/wp-cache-config.php แล้วเอา comment ตรงบรรทัด $use_flock ออก
ผลออกมาถือว่าใช้ได้เลย
WP Super Cache
http://wordpress.org/extend/plugins/wp-super-cache/
WP Super Cache ตัวนี้คนใช้เยอะ โดยรวมถือว่าดีทั้ง install และ uninstall ง่าย ไม่ทิ้งไฟล์ไว้เวลา deactivate
ถ้าติดตั้งแล้วได้ “gzuncompress” error ก็ไม่เป็นไร เพราะไม่มีผลกระทบกับ caching operation.
plug-in ตัวนี้มี option ให้ปรับแต่งด้วยแต่มีอันหนึ่งน่าสนใจครับคือ Compression
ถ้าเปิด Compression
ตรงนี้ต้องระวังหน่อยนะครับ
ถ้าเราเปิด Compression และ Server ของเราก็เปิดเหมือนกันหรือ Server ไม่ได้สนับสนุน Compression plug-in ตัวนี้จะให้ผลเสียทีเดียว
บางครั้งการเปิด compression เป็นตัวการสำคัญเลยที่ทำให้ WP-Super cache ทำงานผิดปกติ นั่นเลยทำให้หลายคนบอกว่า WP-super cache ไม่ค่อยดี แต่จริงๆมันก็คือ WP-cache ที่ซับซ้อนกว่าเดิมที่ประสิทธิภาพไม่ต่างกันเท่าไหร่ นอกเหนือจากนั้น WP-super cache ยังไม่เป็นมิตรกับคนอื่นเท่าไหร่ถ้าปรับแต่งไม่ถูกหรือใส่ plug-in ตัวอื่นที่ไม่สามารถเข้ากันได้สามารถทำให้เว็บเราช้าลงได้เลย จึงทำให้ผมไม่กล้าใช้เท่าไหร่
WP Widget Cache
http://wordpress.org/extend/plugins/wp-widget-cache/
WP Widget Cache สร้างมาสำหรับเว็บที่ใช้ widget เยอะเนื่องจากเว็บที่นำมาทดสอบใช้แค่ widget มาตาฐานของ wordpress จึงไม่สามารถใช้ประโยชน์จาก WP-widget cache ได้เต็มที่
คนเขียน WP widget cache แนะนำให้ติดตั้งพร้อมกับ WP-Cache หรือ WP Super Cache เพราะฉะนั้นผมจะลองทดสอบดู 3 แบบ : Standalone, WP-widget cache+WP-Cache, WP-widget cache+WP Super Cache
WP widget cache install และ uninstall ง่าย แต่ต้องไปปรับแต่งนิดหน่อยต้องเข้าไปที่ Widget settings และกำหนดค่า expire ของแต่ละ widget
Standalone:
With WP-Cache:
With WP Super Cache:
โดยรวมแล้วจะเห็นว่าไม่ได้ช่วยอะไรมาก เพราะ WP widget cache เหมาะสำหรับเว็บที่ใช้ widget ดึงข้อมูลมาจาก database เยอะๆ
DB Cache
http://wordpress.org/extend/plugins/db-cache/
DB Cache plugin ทำงานแตกต่างจากหลายๆตัวที่ผ่านๆมา เพราะัตัวนี้ทำหน้า save database queries แทนการ save page การ install/uninstall ง่าย ไม่ทิ้งไฟล์ไว้เวลา deactivating ด้วย
DB Cache เหมาะใช้กับ server administrator มากกว่า เช่น web server ถ้าเว็บเรามีน้อยกว่า 500 หน้า plug-in นี้คงไม่ได้ช่วยอะไรมาก
DB Cache Reloaded
http://wordpress.org/extend/plugins/db-cache-reloaded/
DB Cache Reloaded ทำงานคล้ายกับ DB Cache แต่ประสิทธิภาพดีกว่า
1 Blog Cacher
http://wordpress.org/extend/plugins/1-blog-cacher/
1 Blog Cacher caching plugin ที่เรียบง่าย โค้ดน้อย ไม่ค่อยดังเท่าไหร่แต่เห็นบางคนแนะนำเลยมาลองทดสอบดู
โดยรวม วิธีติดตั้งยุ่งยากและผลลัพท์ที่ไม่ค่อยดี
Hyper Cache
http://wordpress.org/extend/plugins/hyper-cache/
Hyper Cache เป็น plug-inใหม่ แต่ประสิธิภาพดีมากติดตั้งง่ายอีกทั้งมีระบบการปรับแต่งที่ดี
เป็น Caching Plug-in ทีเร็วมากอีกทั้งโค้ดที่เบาจึงเป็น A must have caching plugin
W3 Total Cache
http://wordpress.org/extend/plugins/w3-total-cache/
W3 Total Cache เป็นตัวกำเนิดของ caching plugins ทั้งหมดเพราะใหญ่มาก ศึกษาง่าย อีกทั้งมีระบบให้ปรับแต่งเกือบทุกอย่าง
การติดตั้งก็ง่าย มี option ให้ปรับแต่งตามต้องการ และเมื่อติดตั้งแล้ว plug-in จะปรับค่าตามความเหมาะสมของเว็บให้เองโดยอัตโนมัตซึ่งเหมาะสำหรับคนที่ชอบลงแล้วไม่อยากปรับแต่งอะไร
ถ้าคนที่ชอบ plug-in ที่ทำได้ทุกอย่าง ตัวนี้เป็นตัวเลือกที่ดีเพราะปรับแต่งได้ทุกอย่าง เช่น multiple methods of page caching, minifying, database caching, content delivery networks เป็นต้น แต่ก็มีข้อเสียเหมือนกันตัวนี้ไม่ได้เป็นตัวที่ caching ได้เร็วที่สุด
Do It Yourself Caching
นอกจากจะใช้ plug-in ในการ cache แล้ว เราสามารถทำ caching เองก็ได้นะครับและบางครั้งมันเป็นวิธีที่ดีที่สุดโดยเฉพาะกับหน้าที่ไม่ค่อยมีการเปลี่ยนแปลงแต่ข้อเสียมันก็คือต้องทำเอง
วิธีทำ
- สร้าง folder “cache” ใน wp-content folder
- ไปหน้าที่ต้องการ cache จากนั้น view souce ให้ copy ทั้งหมดเลย
- สร้างไฟล์ที่ชื่อเหมือน หน้าที่เรา cache เช่น หน้า about ให้เราสร้างไฟล์ about.html ขึ้นมาใน folder cache แล้วนำ code เมื่อกี้มาใส่ไว้
จากนั้น สร้าง ไฟล์ .htaccess ใน root WordPress folder และนำ โค้ดข้างล่างไปใส่
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^about$ wp-content/cache/about.html
</IfModule>
mod_rewrite เป็นการบอกให้ server to ส่งเนื้อหาที่ไฟล์ wp-content/cache/about.htmlเวลามีคนเข้ามาที่ http://yourblogurl.com/about ผมแนะนำให้ศึกษา mod_rewrite ก่อนที่จะทำ caching ด้วยตัวเองเพราะนอกจากทำ caching แล้วการทำแบบนี้ยังช่วยให้ CPU load ดีขึ้นด้วย
ถึงแม้ว่า Do it yourself caching จะให้ผลที่ดีแต่ เราต้องมานั่งทำเองซึ่งเสียเวลาอีกทั้งถ้าหน้านั้นเปลี่ยนเราก็ต้องทำ cache ใหม่เองอีกจึงไม่ค่อยเหมาะสักหรับบางกรณี
ติดตั้งเป็น Combo
ติดตั้งหลายๆตัวสามารถเพิ่มประสิทธิภาพได้เช่น Hyper Cache + DB Cache Reloaded และก็ทำให้แย่ลงได้เหมือนกัน เช่น WP Super Cache + Anything ลองหลายๆแบบ แล้วดูว่าแบบไหนที่ทำงานได้ดีในเว็บของเรา
สรุป
ตารางเปรียบเทียบของ WP caching ต่างๆ ครับ
โดยรวมแล้วผมคิดว่า Hyper Cache + DB Cache Reloaded เหมาะสำหรับ developer ครับเพราะมีอะไรให้เล่นอีกหน่อย
ส่วนคนที่ไม่ชอบปรับอะไรเลยหรือ blogger ทั่วไปที่ต้องการแค่เพิ่มความเร็วของเว็บหรือ developer ที่ต้องการรู้ caching อย่างจริงจัง W3 Total Cache เป็นตัวเลือกที่เหมาะครับ
ที่มา tutorial9.net
RSS Feed
Twitter














Posted in
Tags:
เจ๋งมากๆเลยครับ แต่ที่ผมทดลองก่ะ wp-mu สรุปได้ว่า wp-cache ดีกว่า super cache นะครับลองกับเว็บ wp-mu ที่มีคนเข้าต่อวัน 80k uip ครับ รันดูจาก server เลย ลง memcache ทั้งสองตัวแล้วทดสอบ plugin สรุปได้ว่า wp-cache ดีกว่า
มาเจอเว็บนี้พอดีกำลังหา Plugin cach ใช้พอดีมีประโยชน์มากมายเลยครับ
เยอะจัดจะใช้ตัวไหนดีเนี้ย โฮสเน่าๆคนเข้าไม่เยอะ แต่โหลดช้าเต่าเรียกป้า สรุปผมขอเอา Hypercache ไปลอง เห็นมะมีคนใช้ ได้ผลยังไงจะมาบอกครับ
ยินดีครับ
ยอดเยี่ยมครับ เดี๋ยวลองใช้มั่งดีกว่า ช่วยลดการกินทรัพยากร sever ได้มากจริงๆ
บทความเยี่ยมมากครับ ขอบคุณมากครับ
ลอง w3 total cache แล้ว รู้สึกว่าจะใช้ง่ายกว่าตัวอื่นๆครับ ไม่เร็วขึ้นมากเท่า hypercache แต่มันง่าย เหมาะกับมือใหม่มากๆ
บทความเยี่ยมมากครับ ขอบคุณมากครับ
ขอบคุณครับคุณ Chai สำหรับคำติชม ผมลองไปดูเว็บคุณ chai มา ทำได้สวย วาง layout เว็บ ได้ดีครับ ไม่น่าเชือว่าทำจาก wordpress
กำลังมองหา ตัวที่น่าสนใจอยู่พอดี ส่วนตัวใช้ w3cache อยู่ แต่ไม่ค่อยชอบ
ยอดมากครับ ยังงี้เห็นทีต้องเปลี่ยนมาใช้ W3 ซะแล้ว
ขอบคุณสำหรับข้อมูลครับ จะลองนำไปปรับแต่งครับ