เครือข่ายและ DNS

How to fix high CPU usage problem on BIND (named)

DNSDNS (bind) บน centos 6 เมื่อได้เปิดใช้งานโดยไม่ได้ปรับแก้ไขอะไรนอกจากสร้าง zone และ zone file จะเกิดปัญหาการใช้งาน CPU เกิน 100% ดังตัวอย่างด้านล่าง


top - 11:32:19 up 8 days, 44 min,  1 user,  load average: 0.24, 0.09, 0.06
Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
Cpu(s):  7.2%us, 36.6%sy,  0.0%ni, 50.0%id,  4.1%wa,  0.0%hi,  0.0%si,  2.1%st
Mem:   3923092k total,  2268344k used,  1654748k free,   148052k buffers
Swap:  3071992k total,        0k used,  3071992k free,   602412k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  616 named     20   0  229m  11m 2548 S 130.3  0.3   0:06.74 named

และเมื่อตรวจสอบที่ /var/log/message แล้วพบว่าเจอ error ตามด้านลง

/var/named/dynamic/managed-keys.bind.jnl: create: file not found

จากข้อมูลข้างบน ปัญหาการใช้งาน CPU เกิน 100% เกิดจาก

  1. ติดตั้ง bind-chroot
  2. เปิดใช้งาน SElinux

การแก้ไขปัญหาสำหรับการใช้งาน CPU เกิน 100% ของ BIND (named)

  1. ปิดการใช้งาน selinux โดยแก้ไขไฟล์ /etc/sysconfig/selinux โดยให้

    SELINUX=disabled

    และ reboot เครื่อง แต่ถ้าไม่สามารถ reboot เครื่องได้ให้รันคำสั่ง

    [root@ezylinux ~]# setenforce Permissive
  2. ตรวจสอบดูว่าได้ติดตั้ง bind-chroot หรือไม่ ด้วยคำสั่ง

    [root@ezylinux ~]# rpm -qa | grep -i bind

    ถ้าหากเจอคำว่า “bind-chroot” แสดงว่าได้ติดตั้ง bind-chroot package เข้าไปในระบบ ดังนั้นให้รันคำสั่งด้านล่าง เพื่อสร้าง directory ที่ bind ต้องการใน path ของ bind-chroot

    [root@ezylinux ~]# mkdir /var/named/chroot/var/named/dynamic
    [root@ezylinux ~]# mkdir /var/named/chroot/var/named/data
    [root@ezylinux ~]# touch /var/named/chroot/var/named/dynamic/managed-keys.bind
    [root@ezylinux ~]# touch /var/named/chroot/var/named/data/named.run
    [root@ezylinux ~]# chown -R /var/named/chroot/var/named/d*

    จากนั้น restart bind (named) service ด้วยคำสั่ง

    [root@ezylinux ~]# service named restart
EOF.← กลับไปอ่านบทความอื่น