falcon 数据丢失处理方法参考
背景:使用 netstat -ano | grep ESTABLISH | grep 11883 监控 send_Q 和 recv_Q 的值,由于单次推送数据量在1w条以上,导致falcon-agent处理不过来,造成数据丢失,图形断点.
1,为什么 falcon 图形会断点?
有如下两条原因:
- tcp 连接断开,导致当前监控点无数值。
- 数据丢失,空白点位时间段数据未上传。
2,验证数据丢失
- 机器上找一个长连接进行监控,并用脚本打点到日志文件,与 falcon 图形比对丢失点连接是否存在。经过实际验证,发现数据确实是 丢失 。

- test.sh

- 结果:

3,为什么数据会丢失?
- 因为我们的连接数在 5k~1w 之间,

- 每分钟取值,并打两个指标上去,

也就是每分钟我们会推送 1w~2w 条数据到 falcon,
单线程执行总花费时间 37s 左右,
多线程执行总花费时间为 0s
一开始我们怀疑是单线程执行慢的原因,担心数据未完成插入,被丢弃,所以采用了拉长推送时间,改为每2/3/5分钟尝试,结果都是失败。
后来尝试改为多线程,但是问题依旧,后来经过讨论以及请教其它同事,怀疑是不是因为短时间内推送数据过多(根据同事提供历史单次推送在2000条,没有数据丢失问题),导致 falcon-agent 处理不过来,所以丢弃了部分数据。
于是在原基础上,对数据推送进行切割,分批次推送(500/List)+ 延时(20ms,避免多进程执行过快),控制数据推送总花费时间在 15s 以内,完美解决了此次数据丢失问题。



总结
原因: 短时间内推送数据量过大
解决办法: 分批次推送数据 + 延时
补充知识:
1⃣️send_Q与recv_Q代表什么?
https://stackoverflow.com/questions/36466744/use-of-recv-q-and-send-q?noredirect=1&lq=1
https://milestone-of-se.nesuke.com/sv-basic/linux-basic/ss-netstat/
2⃣️什么是tcp三次握手?
https://github.com/jawil/blog/issues/14
falcon 数据丢失处理方法参考的更多相关文章
- vim 乱码问题的方法参考
linux 中设置当前用户的系统默认编码为 UTF-8 格式解决 vim 乱码问题的方法参考 任侠 2013-05-02 11:58 电脑基础 抢沙发 13,732 views 在使用 l ...
- 【转】warning C4819,该文件保存为 Unicode 格式以防止数据丢失,处理方法
以下的解决方案只是把错误给屏蔽掉而已,并不能真正解决这个警告.仅供参考! 当项目引用到外部源代码后,经常出现4819错误,警告信息如下: warning C4819: 该文件包含不能在当前代码页(93 ...
- [总结]jQuery之常用函数方法参考手册
w3school参考地址:http://www.w3school.com.cn/jquery/index.asp runoob参考地址:http://www.runoob.com/jquery/jqu ...
- 记录Javascript的数据方法参考
concat >>连接2个或更多数组,并返回结果 var arr1 = [1,2,3]; var arr2 = [-1,-2,-3]; console.log(arr1.concat(ar ...
- HBuilder 详细使用方法 -------------参考 :http://www.runoob.com/w3cnote/hbuilder-intro.html
HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE.HBuilder的编写用到了Java.C.Web和Ruby.HBuilder本身主体是由Java编写,它基于Ecl ...
- linux系统启动报错:[contains a file system with errors, check forced]的解决方法参考
1.解决参考一Press enter for maintenance(or type Control-D to continue):/dev/sda3 contains a file system w ...
- List<T>集合导出csv方法参考,通过增加自定义的属性控制输出的字段。
public string CreateAdvExcel(List<GridScoreManager> lt) { StringBuilder builder = new StringBu ...
- 成功案例分享:raid5两块硬盘掉线数据丢失恢复方法
1. 故障描述 本案例是HP P2000的存储vmware exsi虚拟化平台,由RAID-5由10块lT硬盘组成,其中6号盘是热备盘,由于故障导致RAID-5磁盘阵列的两块盘掉线,表现为两块硬 ...
- Remove Element(第一种方法参考别人)
Given an array and a value, remove all instances of that value in place and return the new length. T ...
随机推荐
- 【转】Python 代码批量抓取免费高清图片!
import requests from bs4 import BeautifulSoup import random import time from fake_useragent import U ...
- osg创建灯光
添加光照 osg::ref_ptr<osg::Node> MyOSGLoadEarth::CreateNode() { osg::ref_ptr<osg::Group> _ro ...
- 【DataBase】H2 DateBase的简单使用
H2介绍 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容. H2还提供兼容模式,可以兼容一些主流的数据库,因此 ...
- 标量子查询调优SQL
fxnjbmhkk4pp4 select /*+ leading (wb,sb,qw) */ 'blocker('||wb.holding_session||':'||sb.username||')- ...
- 【端口转发】k8s port-forward端口转发 和 ssh -NfL端口转发
kubectl port-forward端口转发 将远程pod端口转发到本地端口 kubectl port-forward monitoring-grafana-695c545f46-rhtwc -- ...
- 最新CSS兼容方案
CSS兼容方案,让你的样式完美兼容各大浏览器,这个方案主要是用来解决Safari的,Opear是在测试的时候顺带试了一下,结果发现竟然也行,所以顺便也解决了. .e {/*FF OP*/ color: ...
- Python3 IO编程之文件读写
读写文件是最常见的IO操作.python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一个,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序终结操作磁盘, ...
- 代码内存泄露检测(1) MLeaksFinder (Wechat开源) + FBRetainCycleDetector (FaceBook开源)
每次项目编译完成之后,都被内存搞得头昏脑胀,压力甚大. 利用两周时间,稍微研究了 微信开源的 MLeaksFinder 和 facebook 开源的 FBMemoryProfiler, 这两个开源三方 ...
- robot:根据条件主动判定用例失败或者通过
场景: 当用例中的断言部分需要满足特定条件时才会执行,如果不满足条件时,可以主动判定该用例为passed状态,忽略下面的断言语句. 如上图场景,当每月1号时,表中才会生成上月数据,生成后数据不会再有改 ...
- Django2.2_No installed app with label 'admin'
版本:py37+django2.2 错误:项目启动时出现,No installed app with label 'admin' 原因:可以发现只要注释掉settings里面的数据库DATABASES ...