ตอนนี้ใช้งาน raspberry pi 4 สำหรับ run docker ซึ่งก็มีจำนวน container ทำงานอยู่พอสมควร เพราะคิดว่าซื้อมาแล้ว ต้องใช้งานให้มันคุ้มค่าซิ! แต่เมื่อ container เริ่มเยอะ เครื่องมันก็จะเริ่มช้า! เราก็เลยอยากรู้ว่า container ตัวไหนใช้งาน cpu หรือ memory เยอะผิดปกติ ซึ่งเราสามารถใช้คำสั่ง docker stats docker stats ไม่แสดงผล memory usage อย่างที่เห็นดังรูปข้างบน MEM USAGE / LIMIT และ MEM % จะไม่แสดงผล ก็เลยไปลองหาข้อมูลจนเจอวิธีแก้ปัญหาดังกล่าว เลยคิดว่านำมาแชร์ เพื่อจะเป็นประโยชน์

วิธีแก้ปัญหา

  1. ทำการ backup cmdline.txt ไว้ก่อนเลย เผื่อมีอะไรผิดพลาด จากนั้นเข้าไปแก้ไขไฟล์ cmdline.txt ได้เลย

    sudo cp /boot/cmdline.txt /boot/cmdline.txt.old sudo nano /boot/cmdline.txt

  2. เมื่อเข้าไปในไฟล์ cmdline.txt เราจะเจอแบบข้างล่าง

    console=serial0,115200 console=tty1 root=PARTUUID=eb9dd260-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

  3. ทำการแก้ไข โดยเพิ่มคำสั่ง cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory ต่อท้าย rootwait

    console=serial0,115200 console=tty1 root=PARTUUID=eb9dd260-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory

  4. จากนั้นก็ sudo reboot แล้วลองเรียกใช้งาน docker stats อีกครั้ง! ตอนนี้เราจะเห็นว่า MEM USAGE / LIMIT และ MEM % แสดงผลครบแล้ว