摘要:
环境:centos7.4 内核版本3.10 内核参数net.ipv4.tcp_max_syn_backlog定义了处于SYN_RECV的TCP最大连接数,当处于SYN_RECV状态的TCP连接数超过tcp_max_syn_backlog后,会丢弃后续的SYN报文。 为了测试上述结论,首先将tcp_s 阅读全文
摘要:
golang版本1.12.9;操作系统:readhat 7.4 golang的底层使用epoll来实现IO复用。netPoll通过pollDesc结构体将文件描述符与底层进行了绑定。netpoll实现了用户层面的与底层网络IO相关的goroutine的阻塞/非阻塞管理。 对netpoll的介绍按照这 阅读全文
摘要:
关于golang http transport的讲解,网上有很多文章进行了解读,但都比较粗,很多代码实现并没有讲清楚。故给出更加详细的实现说明。整体看下来细节实现层面还是比较难懂的。 本次使用golang版本1.12.9 transport实现了RoundTripper接口,该接口只有一个方法Rou 阅读全文
摘要:
Prometheus产生的告警通常会发送到alertmanager,当使用alertmanager时,其告警信息仅存在于alertmanager的内存中,无法持久化。故实现了小工具,用于将Prometheus的alert信息保存到elasticsearch。 可以从这里下载,注意版本。 阅读全文
摘要:
问题描述: 在使用wireshark抓取报文时,发现从10.81.2.92发过来的报文绝大部分标记为异常报文(开启IPv4和TCP checksum) 分析如下报文,发现http报文(即tcp payload)的长度远远大于实际的mss大小,如下图为4126 查看该报文的ip长度,为4148,远大于 阅读全文
摘要:
概述 Prometheus使用postgresql需要使用postgresql adapter进行数据转换。在安装postgresql adapter之前需要安装2个扩展: 和`timescaledb` 官方推荐使用 , ,和 打包在一起的 "容器" ,但对于使用已有的postgresql来说并不合 阅读全文
摘要:
之前有做过使用单机版的consul实现Prometheus服务注册,以为使用集群版的consul只是将consul服务地址从节点IP变为了网关IP。但比较坑的就是,当使用consul注册一个service的时候,该service会存储在集群中的某个consul server上,删除该service时 阅读全文
摘要:
注:使用源码安装的原因主要是使用yum安装glusterfs服务端时出现一些依赖库问题 准备3台glusterfs服务器(官方也建议至少3台,防止发生脑裂),并在各个服务器的/etc/hosts下面添加如下内容(如使用DNS服务器,则在DNS中添加域名解析) 参照官方文档Build and Inst 阅读全文
摘要:
直接IO:https://www.ibm.com/developerworks/cn/linux/l-cn-directio/index.html 零拷贝:https://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/index.html li 阅读全文
摘要:
kubelet 源码分析: 事件处理:https://cizixs.com/2017/06/22/kubelet-source-code-analysis-part4-event/ 阅读全文