Hướng dẫn khắc phục dataskq load cao trên Directadmin
Sau đây mình xin hướng dẫn các bạn cách khắc phục dataskq load cao trên Directadmin
Vào 1 ngày đẹp trời mình thấy Website chạy quá ì ạch trong khi lượng truy cập ít,
Mình vào DA Service Monitor thấy top 5 processes sử dụng tới 99% CPU và cùng processes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
11477 root 20 0 324m 196m 1580 R 53.3 5.2 17153:50 /usr/local/directadmin/dataskq
7738 root 20 0 315m 183m 1580 R 49.3 4.8 15702:50 /usr/local/directadmin/dataskq
17973 root 20 0 307m 170m 1592 R 59.5 4.5 14271:42 /usr/local/directadmin/dataskq
15411 root 20 0 285m 159m 1592 R 58.9 4.2 9984:23 /usr/local/directadmin/dataskq
18812 root 20 0 299m 158m 1592 R 50.0 4.2 12829:33 /usr/local/directadmin/dataskq
32016 root 20 0 292m 146m 1592 R 49.7 3.8 11400:47 /usr/local/directadmin/dataskq
10846 root 20 0 254m 125m 1592 R 61.8 3.3 8605:18 /usr/local/directadmin/dataskq
22175 root 20 0 248m 114m 1592 R 54.9 3.0 7239:59 /usr/local/directadmin/dataskq
28472 root 20 0 241m 104m 1592 R 52.6 2.7 5916:28 /usr/local/directadmin/dataskq
2738 root 20 0 239m 98m 1700 R 49.7 2.6 4753:17 /usr/local/directadmin/dataskq
7807 root 20 0 212m 84m 1836 R 49.3 2.2 3698:22 /usr/local/directadmin/dataskq
11449 root 20 0 202m 75m 1836 R 49.7 2.0 1870:38 /usr/local/directadmin/dataskq
6370 root 20 0 205m 73m 1836 R 50.0 1.9 2744:47 /usr/local/directadmin/dataskq
22093 root 20 0 178m 52m 1836 R 52.0 1.4 1042:42 /usr/local/directadmin/dataskq
26249 root 20 0 152m 27m 1844 R 54.9 0.7 266:05.08 /usr/local/directadmin/dataskq
|
Server của mình đã quá tải và dataskq là nguyên nhân dẫn tới tất cả các Service khác đều bị crash, Làm như thế nào để mình khắc phục vấn đề này
đầu tiên mình phân tích một process để tìm hiểu nguyên nhân với command
1
|
lsof –p 11477
|
sau đó có thể dùng lệnh này để xem log
1
|
tail –n 10 /var/log/directadmin/errortaskq.log
|
1
|
killall –USR1 dataskq
|
Nếu không được bạn có thể tạo ra file script để chạy, mình thấy cách này là hay nhất.
1
2
3
4
5
6
|
#!/bin/bash
PIDS=`ps aux | grep dataskq | awk ‘{print $2}’`
for P in $PIDS
do
kill –9 $P
done
|
tiếp theo tạo cron làm chậm dataskq
sau đó lưu lại và restart lại cron là ok