บทความที่น่าสนใจเกี่ยวกับ NodeJS คือ We cut Node.js’ Memory in half
หรือดูสรุปใน Twiiter/X ได้
ทำการอธิบายว่าทำไม NodeJS version ที่ใช้งานกันอยู่นั้น
จึงไม่ทำการเปิด feature V8 Pointer compression (memory and performance)
ซึ่งถ้าเปิด feature นี้แล้วจะช่วยลดการใช้ memory ลงถึง 40-50% กันเลย

ปัญหาหลัก ๆ คือ architecture ปัจจุบันไม่เหมาะสม
นั่นคือ ใน 1 process จะใช้ memory ได้ 4 GB
ดังนั้นถ้าเพิ่ม worker เข้าไป ก็อยู่ใน 4 GB นั่นเอง (memory cage)
ถ้าจะเปลี่ยนแปลง จะกระทบเยอะมาก ๆ
แสดงดังรูป

ดังนั้นจึงได้ทำการแก้ไข โดยใช้สิ่งที่เรียกว่า Isolated group
เพื่อให้การทำงานแยกกลุ่มกัน มี memory cage แยกกัน ดังรูป

ซึ่งสามารถลองใช้งานผ่าน Docker Image ได้เลย
เพียงแค่เปลี่ยนจาก official image มาเป็นตัวนี้ได้เลย
โดยที่ไม่ต้องแก้ไข code ใด ๆ

ผลการทดสอบที่น่าสนใจ

ลองใช้งานเล่น ๆ กันดู ว่าผลลัพธ์เป็นอย่างไรบ้าง ?

NodeJS::Issue

Tags: