ดู Resource Usage บน Hosting ไม่ให้เกิน Limit

เรียนรู้วิธีดูและควบคุม CPU RAM IO บน cPanel พร้อมเทคนิคลด Resource ใช้และรู้ว่าเมื่อไหร่ถึงเวลาอัพเกรด

Resource Usage Monitoring cPanel CPU RAM IO Shared Hosting

Resource ที่ Shared Hosting จำกัด

Shared Hosting มีข้อจำกัด Resource หลักหลายประเภทที่เจ้าของเว็บมักไม่รู้จนกว่าจะเจอปัญหา:

เมื่อ Resource เกิน Limit เว็บมักแสดง Error 503 (Service Unavailable) หรือโหลดช้ามาก บางครั้ง Host Provider ระงับ Account ชั่วคราว

ดู Resource Usage ใน cPanel

Resource Usage Dashboard

Login cPanel → มองหา "Resource Usage" หรือ "CPU and Concurrent Connection Usage" ใน Section "Metrics" จะแสดงกราฟ CPU, RAM, I/O, Entry Processes แบบ Real-time และ Historical Data ย้อนหลัง 24 ชั่วโมง

Error Log

ถ้าเว็บแสดง 503 บ่อย ให้ตรวจสอบ Error Log ที่ cPanel → Errors หรือ Logs → Error Log จะเห็น Error ที่เกิดจาก Resource Limit เช่น "Resource temporarily unavailable" หรือ "killed by signal 9 (OOM Killer)"

สาเหตุที่ใช้ Resource สูง

ปัญหาที่พบบ่อยที่ทำให้ Resource สูง:

วิธีลด Resource Usage

1. ติดตั้ง Cache Plugin

Cache Plugin ลด CPU และ RAM ได้มากที่สุดสำหรับ WordPress เพราะไม่ต้องรัน PHP ทุก Request แนะนำ W3 Total Cache หรือ LiteSpeed Cache

2. ปิด Plugin ที่ไม่จำเป็น

ทดสอบปิด Plugin ทีละตัวแล้วดู Resource ว่าลดลงไหม Plugin ที่มักใช้ Resource สูง: SEO Plugins ที่ Scan ทุก Page, Security Plugin แบบ Real-time Scan, Social Media Auto-Post Plugin

3. Optimize Database

# Login MySQL แล้วรัน Optimize
mysqlcheck -u dbuser -p --optimize dbname

# หรือผ่าน phpMyAdmin: เลือก Tables ทั้งหมด → Optimize Table

4. ลด WP-Cron

เพิ่มใน wp-config.php เพื่อปิด WP-Cron อัตโนมัติและตั้ง Real Cron แทน:

// ใน wp-config.php
define('DISABLE_WP_CRON', true);

แล้วตั้ง Cron Job ใน cPanel ให้เรียก wp-cron.php ทุก 5 นาทีแทน

5. Block Bad Bots ใน .htaccess

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(SemrushBot|AhrefsBot|MJ12bot|DotBot).*$ [NC]
RewriteRule ^ - [F,L]

ตรวจสอบ Resource Usage ทำงานถูกต้อง

# ดู PHP Process ที่รันอยู่ (SSH)
ps aux | grep php | wc -l

# ตรวจสอบ MySQL Query ที่ช้า
mysql -u root -p -e "SHOW FULL PROCESSLIST;" | head -20

# ดู Memory Usage ของ PHP
php -r "echo ini_get('memory_limit');"

# ตรวจสอบ Error Log ล่าสุด
tail -50 ~/logs/error.log | grep -i "resource\|kill\|memory"
Tip: ใช้ Query Monitor Plugin บน WordPress เพื่อดูว่า Page ใดทำ Database Query มากที่สุด วิธีนี้ช่วยหา Bottleneck ได้แม่นยำกว่าการดูแค่ CPU ใน cPanel

แก้ปัญหาที่พบบ่อย

Error: "Resource Limit Is Reached" หน้าเว็บไม่โหลด

เกิดจาก Entry Processes เกิน Limit ให้ตรวจสอบว่า Traffic ปกติหรือมี Bot Attack ผิดปกติ ลอง Purge Cache ทั้งหมดและตรวจสอบว่า Cache ทำงานอยู่ ถ้า Traffic ปกติแต่เกิดบ่อย แสดงว่าต้องอัพเกรดแผน Hosting

Error: "Out of Memory" PHP Fatal Error

ขยาย PHP Memory Limit ใน cPanel → PHP Selector หรือเพิ่มใน .htaccess: php_value memory_limit 256M แต่ถ้า Plugin หรือ Theme ต้องการ Memory มากกว่า 256MB อาจมีปัญหาที่ Code ที่ต้องแก้ไข

เว็บช้าในช่วงเวลาเฉพาะ เช่น กลางคืน

อาจเป็น Cron Job ที่ทำงานหนักในช่วงนั้น ตรวจสอบ Cron Jobs ใน cPanel และดู Log เพื่อหาว่า Job ไหนใช้ Resource มาก

เมื่อไหร่ควรอัพเกรดเป็น VPS

สัญญาณที่บอกว่าถึงเวลาอัพเกรด:

หากเว็บโตขึ้นและ Resource บน Shared Hosting ไม่เพียงพอ ลองเปรียบเทียบ VPS Thailand จาก asiagb.com ที่มี Resource dedicated ไม่ต้องแย่งกับเว็บอื่น

คำถามที่พบบ่อย

Q: Resource "Unlimited" ของ Hosting หมายความว่าอะไร?

A: "Unlimited" มักหมายถึง Disk Space และ Bandwidth แต่ CPU, RAM, Entry Processes ยังมี "Fair Use Limit" ซ่อนอยู่ในนโยบาย ถ้าใช้มากเกินไปจะถูกจำกัดหรือระงับ Account

Q: WordPress ใช้ Resource มากกว่า Static Website แค่ไหน?

A: มากกว่าหลายเท่าตัว Static Website แทบไม่ใช้ CPU เพราะส่งไฟล์โดยตรง WordPress ต้องรัน PHP + Database ทุก Request ถ้าไม่มี Cache WordPress ใช้ CPU มากกว่า Static Website ราว 10-50 เท่า

Q: เปลี่ยน PHP Version ช่วยลด Resource ได้ไหม?

A: ได้มาก PHP 8.x เร็วกว่า PHP 7.x อย่างมีนัยสำคัญ ลด CPU Usage ได้ 20-40% สำหรับ WordPress ควรใช้ PHP 8.1 หรือ 8.2 เป็นอย่างน้อย