คำนวณ RAM ที่ต้องการสำหรับ VPS และ Web Server
เครื่องมือช่วยประเมิน RAM ที่เหมาะสมสำหรับ VPS หรือ Dedicated Server โดยคำนวณจากองค์ประกอบจริง เช่น Web Server, PHP-FPM, MySQL, Redis และ Node.js
ช่วยให้คุณเลือก VPS Plan ได้อย่างแม่นยำ ไม่ซื้อเกินความจำเป็นและไม่ขาดแคลน RAM จน Server ค้าง
กรอกข้อมูล Stack ที่คุณใช้งานแล้วกด "คำนวณ" เพื่อดูผลลัพธ์ทันที
⚙
ตั้งค่า Stack ของคุณ
รายละเอียดการใช้ RAM
รวมทั้งหมด (+ 25% buffer)
วิธีใช้งาน
- เลือก Web Server ที่คุณใช้งาน (Nginx, Apache หรือ LiteSpeed)
- ปรับ Slider Concurrent Users ให้ตรงกับจำนวนผู้ใช้พร้อมกันสูงสุดที่คาดการณ์
- เปิด PHP-FPM หากรันเว็บ PHP และกำหนดจำนวน Workers ให้เหมาะสม
- เปิด MySQL / MariaDB แล้วใส่ค่า InnoDB Buffer Pool ที่ต้องการ
- เปิดรายการเพิ่มเติม เช่น WordPress, Redis, Elasticsearch หรือ Node.js ตามที่ใช้งานจริง
- กดปุ่ม คำนวณ RAM เพื่อดูผลลัพธ์และ Breakdown รายส่วน
สูตรคำนวณและหลักการ
การคำนวณแบ่ง RAM ออกเป็นส่วนย่อยของแต่ละ Service แล้วนำมารวมกัน จากนั้นเพิ่ม buffer เพื่อรองรับ spike และ kernel overhead
| Component |
สูตร |
| Apache (prefork/event) | 8 MB × max(4, ⌈users÷4⌉) workers |
| Nginx | ~13 MB (asynchronous base) |
| LiteSpeed | ~50 MB base |
| PHP-FPM | 30 MB × จำนวน Workers |
| MySQL / MariaDB | InnoDB Buffer Pool + 200 MB |
| WordPress / CMS | +64 MB overhead |
| Redis | Memory Limit + 50 MB |
| Elasticsearch | JVM Heap + 200 MB |
| Node.js | 150 MB × จำนวน Instances |
| OS + Kernel | 256 MB (fixed overhead) |
| Safety Buffer | × 1.25 (RAM ขั้นต่ำ), × 1.5 (แนะนำ) |
ค่า "ควรซื้อ VPS" คือ Power of 2 ที่ใกล้เคียงที่สุดและมากกว่าค่า RAM แนะนำ ได้แก่ 1, 2, 4, 8, 16 หรือ 32 GB
เนื่องจาก VPS Provider ส่วนใหญ่จำหน่าย Plan ตามมาตรฐานนี้
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1 — WordPress Blog ทั่วไป
เว็บบล็อก WordPress ที่ใช้ Nginx + PHP-FPM 10 Workers + MySQL (InnoDB Buffer 128 MB) + Redis 64 MB รองรับ 100 Concurrent Users
ตัวอย่างที่ 2 — E-Commerce ขนาดกลาง
ร้านค้าออนไลน์ที่ใช้ Apache + PHP-FPM 25 Workers + MySQL (InnoDB 512 MB) + WordPress + Redis 128 MB + Elasticsearch (Heap 512 MB) รองรับ 500 Concurrent Users
ตัวอย่างที่ 3 — API Server + Node.js Microservices
ระบบ Backend ที่ใช้ Nginx + MySQL (InnoDB 256 MB) + Redis 256 MB + Node.js 5 Instances รองรับ 1,000 Concurrent Users ไม่มี PHP
คำถามที่พบบ่อย (FAQ)
สูตรง่ายที่นิยมใช้คือ RAM ที่เหลือ ÷ 30 MB เช่น VPS 2 GB ที่ให้ MySQL ใช้ 400 MB และ OS 256 MB จะเหลือ RAM ราว 1.3 GB หาร 30 MB ได้ ~43 Workers
อย่างไรก็ตามหากเว็บมี Traffic ไม่มาก เริ่มต้นที่ 10–20 Workers แล้วค่อยปรับเพิ่มตาม pm.max_children ใน www.conf
จะดีกว่าการตั้งสูงไว้ล่วงหน้าโดยไม่จำเป็น เพราะแต่ละ Worker จะกินหน่วยความจำตลอดเวลาที่ Process ทำงานอยู่
Prefork MPM สร้าง Process แยกต่างหากสำหรับทุก Connection ทำให้กิน RAM สูงมากเมื่อ Traffic เพิ่ม เหมาะสำหรับ PHP แบบ mod_php เท่านั้น
Event MPM ใช้ Thread และ Async I/O สามารถรองรับ Connection ได้มากขึ้นด้วย RAM น้อยกว่า แนะนำให้ใช้ร่วมกับ PHP-FPM ซึ่งเป็น Best Practice ในปัจจุบัน
โดยทั่วไป Nginx มี Memory Footprint ต่ำที่สุดในบรรดา Web Server ทั้งสาม เนื่องจากออกแบบมาเพื่อ Asynchronous I/O โดยเฉพาะ
Redis ทำหน้าที่เป็น Object Cache เก็บผลลัพธ์ของ Database Query หรือ Page Fragment ไว้ใน RAM โดยตรง
ทำให้ PHP Process ไม่ต้องสร้าง Database Connection และประมวลผลซ้ำในทุก Request ส่งผลให้ PHP-FPM Worker
แต่ละตัวทำงานเสร็จเร็วขึ้นและถูกปล่อยให้รับ Request ใหม่ได้เร็วกว่า จึงสามารถรองรับ Traffic ได้มากขึ้น
ด้วย Worker จำนวนน้อยลง ซึ่งเท่ากับประหยัด RAM โดยรวมได้แม้ว่า Redis เองก็ใช้ RAM เพิ่มขึ้นบ้าง
สัญญาณที่บ่งบอกว่าถึงเวลาอัปเกรด ได้แก่ ค่า free -m แสดง Available RAM ต่ำกว่า 10% อย่างต่อเนื่อง,
ระบบ Swap ถูกใช้งานบ่อยครั้ง (ทำให้ Response Time ช้าลงมาก), PHP-FPM ขึ้น Error "max_children reached",
หรือ OOM Killer เริ่ม Kill Process ต่างๆ สามารถติดตามด้วย vmstat หรือเครื่องมือ Monitoring เช่น Netdata, Prometheus
ก่อนอัปเกรดควรตรวจสอบว่าปรับค่า Configuration ให้เหมาะสมแล้วหรือยัง
เครื่องมือที่เกี่ยวข้อง