How to fix high CPU usage problem on BIND (named)
DNS (bind) บน centos 6 เมื่อได้เปิดใช้งานโดยไม่ได้ปรับแก้ไขอะไรนอกจากสร้าง zone และ zone file จะเกิดปัญหาการใช้งาน CPU เกิน 100% ดังตัวอย่างด้านล่าง
[text]
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
[/text]
และเมื่อตรวจสอบที่ /var/log/message แล้วพบว่าเจอ error ตามด้านลง
[text]/var/named/dynamic/managed-keys.bind.jnl: create: file not found[/text]
จากข้อมูลข้างบน ปัญหาการใช้งาน CPU เกิน 100% เกิดจาก
- ติดตั้ง bind-chroot
- เปิดใช้งาน SElinux
การแก้ไขปัญหาสำหรับการใช้งาน CPU เกิน 100% ของ BIND (named)
- ปิดการใช้งาน selinux โดยแก้ไขไฟล์ /etc/sysconfig/selinux โดยให้
[text]SELINUX=disabled[/text]
และ reboot เครื่อง แต่ถ้าไม่สามารถ reboot เครื่องได้ให้รันคำสั่ง
[shell][root@ezylinux ~]# setenforce Permissive[/shell] - ตรวจสอบดูว่าได้ติดตั้ง bind-chroot หรือไม่ ด้วยคำสั่ง
[shell][root@ezylinux ~]# rpm -qa | grep -i bind[/shell]
ถ้าหากเจอคำว่า “bind-chroot” แสดงว่าได้ติดตั้ง bind-chroot package เข้าไปในระบบ ดังนั้นให้รันคำสั่งด้านล่าง เพื่อสร้าง directory ที่ bind ต้องการใน path ของ bind-chroot
[shell][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*[/shell]
จากนั้น restart bind (named) service ด้วยคำสั่ง
[shell][root@ezylinux ~]# service named restart[/shell]