ผู้เขียน หัวข้อ: WordPress Caching Plugin ไหนดีที่สุด?  (อ่าน 1541 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ smf

  • [color=green][i]"ถ้าคุณไม่สามารถอธิบายอย่างง่ายๆ ให้คนอื่นเข้าใจได้แล้วล่ะก็ แสดงว่าคุณยังเข้าใจมันไม่ดีพอ"[/i][/color]
  • Administrator
  • Hero Member
  • *****
  • กระทู้: 1,368
  • พอยท์: 5
    • ดูรายละเอียด
    • pordoo.com
    • อีเมล์
WordPress Caching Plugin ไหนดีที่สุด?
« เมื่อ: 3 ตุลาคม 2016, 15:14:53 »
ถ้าใครพบว่าเว็บที่ทำด้วย 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 ดังภาพข้างล่าง
blog_stats height=260


ไม่มี cache
เริ่มต้นจากการ ไม่ได้ทำ cache เลย เพื่อที่จะได้นำไปเปรียบเทียบกับการติดตั้ง caching plug-in ต่างๆ
 

data_nocache height=260

จากรูปจะเห็นได้ว่าใน 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 ออก

data_wpcache height=260

ผลออกมาถือว่าใช้ได้เลย


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

data_supercache height=260

ถ้าเปิด Compression

data_supercache_compress height=260
 
 ตรงนี้ต้องระวังหน่อยนะครับ
ถ้าเราเปิด 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:
data_widget_standalone height=260

With WP-Cache:
data_widget_wpcache height=260

With WP Super Cache:
data_widget_supercache height=260

โดยรวมแล้วจะเห็นว่าไม่ได้ช่วยอะไรมาก เพราะ 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 ด้วย

data_dbcache height=260

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 แต่ประสิทธิภาพดีกว่า

data_dbcachereloaded height=260


 1 Blog Cacher http://wordpress.org/extend/plugins/1-blog-cacher/
1 Blog Cacher caching plugin ที่เรียบง่าย โค้ดน้อย ไม่ค่อยดังเท่าไหร่แต่เห็นบางคนแนะนำเลยมาลองทดสอบดู

data_1blogcacher height=260
โดยรวม วิธีติดตั้งยุ่งยากและผลลัพท์ที่ไม่ค่อยดี


Hyper Cache http://wordpress.org/extend/plugins/hyper-cache/
Hyper  Cache เป็น plug-inใหม่ แต่ประสิธิภาพดีมากติดตั้งง่ายอีกทั้งมีระบบการปรับแต่งที่ดี

data_hypercache height=260
เป็น 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 จะปรับค่าตามความเหมาะสมของเว็บให้เองโดยอัตโนมัตซึ่งเหมาะสำหรับคนที่ชอบลง แล้วไม่อยากปรับแต่งอะไร

data_w3total height=260

ถ้าคนที่ชอบ 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 ดีขึ้นด้วย

data_doityourself height=260

ถึงแม้ว่า Do it yourself caching จะให้ผลที่ดีแต่ เราต้องมานั่งทำเองซึ่งเสียเวลาอีกทั้งถ้าหน้านั้นเปลี่ยนเราก็ต้องทำ cache ใหม่เองอีกจึงไม่ค่อยเหมาะสักหรับบางกรณี

 ติดตั้งเป็น Combo ติดตั้งหลายๆตัวสามารถเพิ่มประสิทธิภาพได้เช่น Hyper Cache + DB Cache Reloaded และก็ทำให้แย่ลงได้เหมือนกัน เช่น WP Super Cache + Anything ลองหลายๆแบบ แล้วดูว่าแบบไหนที่ทำงานได้ดีในเว็บของเรา

 สรุป ตารางเปรียบเทียบของ WP caching ต่างๆ ครับ
 

data_results height=260

โดยรวมแล้วผมคิดว่า Hyper Cache + DB Cache Reloaded เหมาะสำหรับ developer ครับเพราะมีอะไรให้เล่นอีกหน่อย
ส่วนคนที่ไม่ชอบปรับอะไรเลยหรือ blogger ทั่วไปที่ต้องการแค่เพิ่มความเร็วของเว็บหรือ developer ที่ต้องการรู้ caching อย่างจริงจัง  W3  Total Cache เป็นตัวเลือกที่เหมาะครับ
 

ที่มา: tutorial9.net
http://www.squashup.com/2010/04/what%E2%80%99s-the-best-wordpress-caching-plugin/

« แก้ไขครั้งสุดท้าย: 3 ตุลาคม 2016, 15:22:35 โดย smf »