缘由

日志量大的时时候filebeat会占用非常高的CPU,为了防止影响业务稳定,决定对filebeat的CPU进行限制核数

方法

限制使用的cpu核数

​ filebeat.yml文件中可以指定”max_procs”参数

​ max_procs: 限制filebeat的进程数量,其实就是内核数

max_procs: 1
filebeat.prospectors:
- input_type: log
#include_lines: ["^\\[[0-9]{4}"]
tail_files: true
paths:
- /var/log/*.log
fields:
device: pudding1s
fields_under_root: true
document_type: log

降低filebeat进程优先级

启动时指定进程优先级

​ 使用nice命令

​ 使用方法: nice -n 命令

​ 优先级由 -20~19这个范围来表示优先级大小,数值越小,优先级越高(默认0)

$ cat /etc/init.d/filebeat 
···
start() {
[ -x $filebeat ] || exit 5
[ -f $FILEBEAT_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
#daemon $filebeat -c $FILEBEAT_CONF_FILE
nice -n 10 nohup $filebeat -c $FILEBEAT_CONF_FILE >/dev/null 2>&1 &
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
···
启动后手动调整进程优先级

​ 使用renice 命令

​ 使用方法: renice 优先级 进程PID

FilebeatPid=`ps -ef |grep filebeat |grep -v grep |awk '{print $2}'`
renice 10 $FilebeatPid