โฮสติ้งประสิทธิภาพสูงสำหรับ WordPress LearnDash

เผยแพร่แล้ว: 2018-12-21

WordPress LearnDash เป็นหนึ่งในแพลตฟอร์มอีเลิร์นนิงที่ประสบความสำเร็จมากที่สุดในโลกของ WordPress LMS มีคุณสมบัติขั้นสูงสำหรับการสร้างหลักสูตร การสร้างรายได้ผ่านการผสานเกตเวย์การชำระเงิน และการดูแลโปรไฟล์ผู้ใช้ กลุ่ม และการมอบหมายหลักสูตร มันทำงานบนมือถือด้วย

แม้ว่า LearnDash จะเป็นผู้นำ แต่ก็มีการใช้ทรัพยากรมาก โดยธรรมชาติแล้ว แอปพลิเคชันที่จำเป็นต้องแสดงเนื้อหาส่วนบุคคลแบบเรียลไทม์แบบไดนามิก เช่น LMS (ระบบการจัดการการเรียนรู้) จะต้องมีเนื้อหาที่ไม่ได้แคชเป็นส่วนใหญ่ และผู้ใช้ต้องเข้าสู่ระบบในส่วนหลัง LearnDash ก็ไม่มีข้อยกเว้นสำหรับปัญหาโดยธรรมชาตินี้

ในบทความนี้ เราจะมาดูกันว่าเหตุใดผู้ให้บริการโฮสติ้ง WordPress จึงทำอะไรได้ไม่มาก นอกจากการจับคู่พลัง CPU ที่จำเป็นสำหรับ LearnDash ในการทำงานอย่างถูกต้อง และวิธีที่ Pressidium จัดการกับปัญหาด้านประสิทธิภาพทั่วไปเหล่านี้

ทรัพยากร WordPress LearnDash เข้มข้นแค่ไหน?

ไม่ว่าคุณจะมีไซต์อีเลิร์นนิงที่มีการเข้าชมต่ำหรือสูง คุณจะประสบปัญหาทางเทคนิคเมื่อคุณเริ่มวางความต้องการในไซต์นั้น ซึ่งอาจมาจากจำนวนผู้ใช้ที่ลงทะเบียน จำนวนหลักสูตร จำนวนผู้ใช้ที่ใช้งานพร้อมกัน หรือการรวมกันของสิ่งเหล่านี้ ปัญหาเหล่านี้อาจมีตั้งแต่การใช้ฮาร์ดแวร์อย่างเต็มรูปแบบและการควบคุมปริมาณ ปัญหาการเขียนฐานข้อมูล ไปจนถึงผู้ใช้ที่ประสบปัญหาการชะลอตัวอย่างรุนแรง แม้กระทั่งการหยุดชะงักระหว่างเวลาของหลักสูตร

การควบคุมปริมาณฐานข้อมูลและข้อขัดแย้งในการทำธุรกรรม

LearnDash ดำเนินการชุดคำสั่ง SQL แบบยาวบางชุด ตัวอย่างเช่น หากคุณมีผู้ใช้จำนวนมาก เช่น 20,000 LearnDash จะดึงข้อมูลทั้งหมด แม้ว่าคุณเพียงต้องการเลือกโปรไฟล์เดียวที่จะแก้ไข

โซลูชันการทำคลัสเตอร์เซิร์ฟเวอร์ขั้นพื้นฐานก็ช่วยได้เช่นกันในกรณีนี้ เกือบทุกการกระทำที่ทำใน LearnDash จะอัพเดทฐานข้อมูล เมื่อคลัสเตอร์เซิร์ฟเวอร์ที่ให้บริการไซต์อีเลิร์นนิง LearnDash ของคุณมีภาระหนัก โหนดเซิร์ฟเวอร์คลัสเตอร์จะเขียนไปยังฐานข้อมูลอย่างต่อเนื่อง นี้สามารถนำไปสู่ ความขัดแย้งในการทำธุรกรรม

ในสถานการณ์ที่มีทราฟฟิกสูง สิ่งเหล่านี้มักจะส่งผลให้เกิดการล็อกตารางฐานข้อมูล หรือการล็อกฐานข้อมูลแบบเต็ม ซึ่งไม่อนุญาตให้ทุกคนเข้าถึงการเขียน แน่นอนว่านี่เป็นหายนะ

การใช้งาน CPU สูงสุด

WordPress LearnDash โดยธรรมชาติเป็นแอปพลิเคชั่นไดนามิกที่ไม่ให้ความร่วมมืออย่างดีกับกลยุทธ์การแคช นี่ไม่ใช่ความผิดของ LearnDash อย่างที่เราได้กล่าวไว้ในตอนเริ่มต้น แต่หมายความว่าคุณไม่สามารถเร่งประสิทธิภาพการทำงานได้ง่ายๆ เพียงแค่แคชการตอบสนองของ HTTP

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

ดังนั้น การที่เนื้อหาเกือบทั้งหมดไม่ได้แคช หมายความว่าผู้ใช้ LearnDash แต่ละคนที่กำลังทำการทดสอบ จะสร้างกระบวนการ PHP แบ็กเอนด์อย่างน้อย 1 รายการ ลองนึกภาพว่าจะเกิดอะไรขึ้นถ้าผู้ใช้ 50 คนเข้าสู่ระบบเกือบพร้อมกัน!

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

โดยสรุปแล้ว การตั้งค่า VPS อย่างง่าย และแผนโฮสติ้ง WordPress ที่ไม่ใช่ Enterprise จะสามารถรองรับ ผู้ใช้ที่เข้าสู่ระบบเพียงไม่กี่โหลเท่านั้นอย่างดีที่สุด ในกรณีที่ผู้ใช้ทั้งหมดดำเนินการบางอย่างเกือบพร้อมกัน คุณจะถึงจุดพีค และทุกอย่างจะเริ่มล้มเหลว

สถาปัตยกรรมองค์กรสำหรับ WordPress LearnDash

ตอนนี้เราได้พูดถึงความท้าทายด้านประสิทธิภาพของ LearnDash แล้วและวาดภาพที่น่าอึดอัดใจเล็กน้อย เราอยากจะแสดงให้คุณเห็นว่าเราจัดการกับปัญหาเหล่านี้อย่างไรที่ Pressidium และเหตุใดสถาปัตยกรรมองค์กรของเราจึงได้รับการพิจารณาโดยชุมชน LearnDash ว่าเป็นหนึ่งในสิ่งที่ดีที่สุด หากไม่ใช่แพลตฟอร์มที่ดีที่สุด ให้ใช้ LearnDash บน

ความจริงก็คือ คู่แข่งส่วนใหญ่ของเราไม่สนับสนุนไซต์ LMS ขนาดใหญ่ เนื่องจากพวกเขาไม่สามารถรับมือกับความต้องการที่วางไว้บนโครงสร้างพื้นฐานของตนได้ ดังที่เราได้กล่าวไว้ก่อนหน้านี้ การตั้งค่า VPS อย่างง่าย หรือแม้แต่ระบบคลัสเตอร์พื้นฐานก็ไม่สามารถจัดการกับปริมาณการใช้งานที่สูงหรือผู้ใช้พร้อมกันจำนวนมากได้ นี่คือเหตุผลที่เราไม่แนะนำหรือสนับสนุนให้ใช้แผนมาตรฐานของเราในกรณีเหล่านี้ ข้อยกเว้นเพียงอย่างเดียวคือสำหรับการพัฒนาหรือการตั้งค่าขนาดเล็กมาก

โดยทั่วไปเราแนะนำ Pressidium Enterprise ให้เป็นตัวเลือกที่ดีที่สุดสำหรับไซต์ที่ใช้งานจริงขนาดใหญ่ที่ใช้งาน LearnDash เราจัดการและดำเนินการติดตั้ง Enterprise LearnDash กับ ผู้ใช้พร้อมกันหลายพันคน ได้สำเร็จ

เพื่อแก้ปัญหาการควบคุมปริมาณฐานข้อมูล เราได้พัฒนาเทคนิคการเพิ่มประสิทธิภาพฐานข้อมูลบางอย่างที่เร่ง LearnDash ในขณะที่คงความพร้อมใช้งานสูงไว้ (น่าเสียดายที่ LearnDash เข้ากันไม่ได้กับฐานข้อมูลความพร้อมใช้งานสูงแบบหลายมาสเตอร์) เราเรียกพวกเขา ว่า "ซอสลับของเรา" อย่างเสน่หา เนื่องจากเทคนิคเหล่านี้ได้รับการปรับแต่งอย่างสูงและปรับแต่งให้เข้ากับสถาปัตยกรรมองค์กรที่เป็นเอกลักษณ์ของเรา

พึงระลึกไว้เสมอว่าการปรับแต่งเหล่านี้สามารถ ใช้ได้ กับแผนระดับองค์กรเท่านั้น เนื่องจากมีคลัสเตอร์เซิร์ฟเวอร์องค์กรเฉพาะที่พร้อมให้คุณใช้งาน นอกจากนี้ยังใช้กับปลั๊กอิน LMS อื่นๆ ได้อีกด้วย ในกรณีที่คุณไม่ได้ใช้ LearnDash ในห้องเรียน

ในทางกลับกัน วิธีแก้ปัญหา CPU สูงสุดของเรานั้นตรงไปตรงมากว่ามาก: เพิ่มแรงม้าของ CPU ดิบมากขึ้น นี่คือเหตุผลที่เราไม่ได้ใช้ผู้ให้บริการคลาวด์คอมพิวติ้งสำหรับใช้งานทั่วไป เช่น Google Cloud หรือ AWS แต่สร้างแพลตฟอร์มของเราตั้งแต่ต้นจนจบด้วยตัวเราเอง ผลลัพธ์ที่ได้คือความคุ้มค่าที่แปลงเป็นทรัพยากรที่มากขึ้นอย่างมีนัยสำคัญสำหรับลูกค้าของเราในระดับราคาที่ใกล้เคียงกันหรือต่ำกว่าคู่แข่งของเรา:

การกำหนดค่าความพร้อมใช้งานสูง 2N+1 ใน คลัสเตอร์เซิร์ฟเวอร์เฉพาะ 5 โหนดที่ปรับสมดุลโหลด พร้อมปัจจัยการแยกและความซ้ำซ้อนที่สูงกว่า สิ่งเหล่านี้ทำให้ไซต์ WordPress LearnDash ของคุณสามารถ ปรับขนาดอัตโนมัติ ระหว่างการจราจรติดขัดและเอฟเฟกต์ slashdot และมีความพร้อมใช้งานสูงและทนต่อความผิดพลาด

เราภูมิใจในความสามารถด้านประสิทธิภาพของ LearnDash ของแพลตฟอร์ม เนื่องจากช่วยบรรเทาความเครียดของเจ้าของไซต์ LearnDash ได้อย่างสมบูรณ์ โดยต้องจัดการกับปัญหาทางเทคนิคระหว่างเซสชัน แต่เราภาคภูมิใจยิ่งขึ้นไปอีกเพราะสถาปัตยกรรมองค์กรของเราสนับสนุนความฝันในการเรียนรู้และความต้องการของผู้ใช้ LearnDash จากทั่วทุกมุมโลก

เข้าร่วม Pressidium และแปลงไซต์ LearnDash ของคุณให้เป็นศูนย์อีเลิร์นนิงที่มีประสิทธิภาพสูง แบ่งปันความท้าทายของ LearnDash กับวิศวกรของเราและขอใบเสนอราคาสำหรับองค์กรโดยคลิกที่ปุ่มด้านล่าง!