【presto】监控presto打开文件描述符脚本
前言
最近在维护presto集群,集群运行一段时间后,会有部分节点打开的文件描述符超出linux的限制。有的人想到会去增加进程打开文件数的限制。
但根据我的排查,这个原因一般是在presto 服务OOM
后发生的,此时服务虽然没有挂掉,但其实已经处于不稳定的状态了。很容易让任务挂掉。
于是决定监控下presto的打开文件描述符,经过观察,公司的presto
集群通常打开的文件描述符是在1万5一下。遂将监控报警阈值调整为2万。
一、脚本内容
#!/bin/bash
# presto_file_descriptor.sh
# 采集presto 服务打开的文件描述符推送到falcon中
fd=$(/usr/sbin/lsof -n|grep `ps -ef|grep -i presto-server |grep -v grep | awk '{print $2}'` |wc -l)
#file_descriptor=$(getPrestoFD)
echo $fd
./pushFalcon -h $(hostname) -m 'presto.file_descriptor' -s 60 -v $fd
二、脚本批量部署和添加定时任务
ansible new-presto -m copy -a "src=presto_file_descriptor.sh dest=/home/rong/opbin/presto_file_descriptor.sh"
ansible new-presto -m shell -a "chmod 764 /home/rong/opbin/presto_file_descriptor.sh"
ansible new-presto -m shell -a "echo '# 采集presto服务打开的文件描述符' >> /var/spool/cron/root"
ansible new-presto -m shell -a "echo '*/1 * * * * cd /home/rong/opbin && bash presto_file_descriptor.sh' >> /var/spool/cron/root"
三、注意事项
在编写脚本时,遇到一个定时任务的问题,这里扩展一下。
https://blog.csdn.net/Mrerlou/article/details/119357731