WordPress ใช้ CPU สูง? วิธีหาสาเหตุและลดการใช้งาน

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

การแก้ให้ตรงจุดควรเริ่มจากดูว่า CPU สูงช่วงใดและเกิดกับหน้าไหน แนวทางของ ComSiam คือบันทึกเวลาและอาการ แล้วตรวจข้อมูลจากโฮสติ้งก่อนเปลี่ยนปลั๊กอินหรือแพ็กเกจ

❶ ตรวจว่า CPU สูงต่อเนื่องหรือเกิดเป็นช่วง

ค่า CPU ที่สูงชั่วคราวอาจเกิดเมื่อมีผู้เข้าชมพร้อมกัน งานสำรองข้อมูล หรือการประมวลผลบางอย่าง ส่วนการใช้สูงต่อเนื่องหรือเกิดซ้ำในช่วงเวลาเดิมควรตรวจหาสาเหตุเพิ่มเติม

① ดูกราฟการใช้ CPU ย้อนหลัง

ใช้แผงควบคุมโฮสติ้งตรวจกราฟและการแจ้งเตือน แล้วจดเวลาที่ CPU สูงเทียบกับช่วงที่เว็บช้าหรือมีงานทำงาน

② จดหน้าและฟังก์ชันที่ได้รับผลกระทบ

ระบุว่าเกิดกับทุกหน้าหรือเฉพาะหน้า เช่น หน้าค้นหา แบบฟอร์ม หน้าสินค้า หรือหลังบ้าน

③ ตรวจข้อจำกัดของแพ็กเกจ

ดูว่าแพ็กเกจจำกัด CPU อย่างไร และมีคำขอถูกหน่วงหรือปฏิเสธเมื่อใช้เกินหรือไม่ หากข้อมูลไม่ชัด ให้สอบถามผู้ให้บริการ

❷ สาเหตุที่ทำให้ WordPress ใช้ CPU สูง

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

อาการเดียวกันอาจเกิดจากหลายสาเหตุพร้อมกัน จึงควรตรวจข้อมูลในช่วงที่เกิดปัญหา ไม่สรุปจากจำนวนปลั๊กอินหรือจากค่า CPU ณ เวลาเดียว

❸ ตรวจปลั๊กอินและธีมที่ใช้การประมวลผลมาก

ปลั๊กอินสำหรับค้นหา กรองสินค้า สถิติ สำรองข้อมูล หรือสร้างรายงาน อาจทำงานหนักในบางหน้า หรือทำงานเบื้องหลังตามช่วงเวลา

① ตรวจการเปลี่ยนแปลงล่าสุด

หากปัญหาเริ่มหลังติดตั้งหรืออัปเดตปลั๊กอิน ให้เริ่มตรวจรายการนั้นและหน้าที่ใช้งานฟังก์ชันของปลั๊กอิน

② ใช้เครื่องมือวิเคราะห์เมื่อจำเป็น

เครื่องมือวิเคราะห์ WordPress อาจช่วยดูคำสั่งฐานข้อมูล PHP errors และการเรียกไฟล์ของปลั๊กอิน ใช้ในช่วงตรวจสอบ และปิดเมื่อไม่ต้องใช้ เพราะเครื่องมือตรวจเองก็อาจเพิ่มภาระได้

③ ทดสอบทีละรายการบนเว็บสำรอง

หากต้องปิดหรือเปลี่ยนปลั๊กอิน ให้ทดสอบบนเว็บไซต์สำรองก่อน หากไม่มี ให้สำรองข้อมูล เตรียมวิธีย้อนกลับ และเปลี่ยนทีละตัว

❹ ตรวจงานตามกำหนดเวลาที่ทำงานเบื้องหลัง

WordPress และปลั๊กอินอาจมีงานที่ทำงานตามเวลา เช่น สำรองข้อมูล ซิงก์สินค้า ส่งอีเมล หรือสร้างรายงาน หากงานหลายอย่างเกิดพร้อมกัน อาจทำให้ CPU พุ่งขึ้นเป็นช่วง

① เทียบช่วงเวลาของงานกับกราฟ CPU

ตรวจว่าค่า CPU สูงตรงกับเวลาสำรองข้อมูลหรือประมวลผลงานอื่นหรือไม่

② ปรับเวลาหรือความถี่เมื่อจำเป็น

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

③ ขอให้โฮสติ้งตรวจเมื่อไม่เห็นรายละเอียด

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

❺ ตรวจแคชและการเรียกหน้าเว็บซ้ำ

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

① ใช้แคชกับหน้าเนื้อหาทั่วไป

บทความและหน้าข้อมูลที่เหมือนกันสำหรับผู้เข้าชมทุกคนอาจเหมาะกับการแคช

② ยกเว้นหน้าที่เปลี่ยนตามผู้ใช้

หน้าเข้าสู่ระบบ บัญชีสมาชิก ตะกร้าสินค้า และชำระเงินต้องตั้งค่าอย่างระมัดระวัง ไม่ควรส่งหน้าเดียวกันให้ผู้ใช้ทุกคน

③ ตรวจว่าไม่มีระบบแคชซ้ำซ้อน

หากมีแคชจากปลั๊กอิน โฮสติ้ง และ CDN พร้อมกัน ให้ตรวจว่าระบบทำงานเข้ากันและล้างแคชได้ถูกต้อง

❻ ตรวจบอตและคำขอที่ผิดปกติ

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

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

❼ ลดการใช้ CPU อย่างเป็นขั้นตอน

① บันทึกเวลาและอาการ

จดเวลาที่ CPU สูง หน้าเว็บที่ช้า และข้อความแจ้งเตือนจากโฮสติ้ง

② ตรวจกราฟและบันทึกจากผู้ให้บริการ

ระบุว่าเกิดซ้ำช่วงใด และมีงานหรือทราฟฟิกเพิ่มขึ้นหรือไม่

③ ตรวจแคช ปลั๊กอิน และงานเบื้องหลัง

เริ่มจากส่วนที่สัมพันธ์กับช่วงเวลาที่เกิดปัญหา อย่าเปลี่ยนหลายระบบพร้อมกัน

④ ปรับทีละจุดและทดสอบซ้ำ

เปรียบเทียบค่า CPU และการตอบสนองของเว็บหลังปรับ ด้วยหน้าและเงื่อนไขเดิม

⑤ ขอข้อมูลเพิ่มเติมเมื่อยังหาสาเหตุไม่ได้

ส่งช่วงเวลาที่เกิดปัญหาและข้อมูลที่บันทึกไว้ให้ผู้ให้บริการตรวจระดับเซิร์ฟเวอร์

ComSiam แนะนำให้เตรียมข้อมูลก่อนติดต่อโฮสติ้ง เช่น URL เวลาเกิดปัญหา กราฟ CPU และการเปลี่ยนแปลงล่าสุด ข้อมูลเหล่านี้ช่วยจำกัดสาเหตุได้ดีกว่าการแจ้งเพียงว่าเว็บช้า

❽ เมื่อไรควรพิจารณาเพิ่มทรัพยากรโฮสติ้ง

หากตรวจปลั๊กอิน แคช งานเบื้องหลัง และคำขอผิดปกติแล้ว แต่ CPU ยังชนขีดจำกัดเมื่อมีผู้เข้าชมตามปกติ อาจถึงเวลาประเมินแพ็กเกจหรือสภาพแวดล้อมเซิร์ฟเวอร์ใหม่

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

สรุป: หาช่วงและสาเหตุก่อนเพิ่มแพ็กเกจ

เมื่อ WordPress ใช้ CPU สูง ให้ตรวจกราฟและช่วงเวลาที่เกิดปัญหา จากนั้นพิจารณาทราฟฟิก ปลั๊กอิน งานเบื้องหลัง แคช และคำขอจากบอต ปรับทีละจุดและทดสอบซ้ำก่อนตัดสินใจเปลี่ยนแพ็กเกจ

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