BCC

eBPF技术简介

萝らか妹 提交于 2021-01-06 11:55:24
“eBPF 是我见过的 Linux 中最神奇的技术,没有之一,已成为 Linux 内核中顶级子模块,从 tcpdump 中用作网络包过滤的经典 cbpf,到成为通用 Linux 内核技术的 eBPF,已经完成华丽蜕变,为应用与神奇的内核打造了一座桥梁,在系统跟踪、观测、性能调优、安全和网络等领域发挥重要的角色。为 Service Mesh 打造了具备 API 感知和安全高效的容器网络方案 Cilium,其底层正是基于 eBPF 技术” 1. BPF BPF(Berkeley Packet Filter ),中文翻译为伯克利包过滤器,是类 Unix 系统上数据链路层的一种原始接口,提供原始链路层封包的收发。1992 年,Steven McCanne 和 Van Jacobson 写了一篇名为《BSD数据包过滤:一种新的用户级包捕获架构》的论文。在文中,作者描述了他们如何在 Unix 内核实现网络数据包过滤,这种新的技术比当时最先进的数据包过滤技术快 20 倍。BPF 在数据包过滤上引入了两大革新: 一个新的虚拟机 (VM) 设计,可以有效地工作在基于寄存器结构的 CPU 之上; 应用程序使用缓存只复制与过滤数据包相关的数据,不会复制数据包的所有信息。这样可以最大程度地减少BPF 处理的数据; 由于这些巨大的改进,所有的 Unix 系统都选择采用 BPF 作为网络数据包过滤技术

聊聊风口上的 eBPF

岁酱吖の 提交于 2021-01-06 11:01:42
eBPF 是一个用于访问 Linux 内核服务和硬件的新技术,由于其灵活性和高性能等特点,被迅速用于网络、出错、跟踪以及防火墙等多场景。目前国内已有少数企业开始尝试将 eBPF 引入生产实践,又拍云也是其中一个。专为技术开发者提供知识分享的 Open Talk 公开课邀请了又拍云开发工程师周晨约直播分享 eBPF 的学习经验与开发心得,并对其分享内容进行整理,下拉至文末点击阅读原文可回看原视频。 大家好,今天分享的主题是《eBPF 探索之旅》,围绕三部分展开: eBPF 是什么 eBPF 能做什么 如何编写 eBPF 程序 认识 eBPF eBPF 是什么,从字面上来看是扩展伯克利包处理器,那伯克利包处理器是什么呢? 在此之前先来了解一个性能优秀的常用抓包工具:tcpdump tcpdump 图中展示了两个常用指令 指令一:指定 IP 和端口,可以抓到 IP 为 220.173.103.227,端口为 80 的包 指令二:加上 grep,可以过滤出带有 route 字段的数据 那么 tcpdump 又是如何做到通过用户提供的规则处理网络上收到的包,再 copy 给用户的呢?如果放在用户层,就需要在系统里所有 socket 读写的时候做一层处理,把规则放上去,这样做难度太大。而 tcpdump 是基于 libpcap 库实现的,libpcap 能做到在驱动将包交给内核网络时

双连通分量(点-双连通分量&边-双连通分量)

岁酱吖の 提交于 2021-01-05 21:56:02
概念: 双连通分量有点双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性, 即不存在割点(桥) ,则称作点(边)双连通图。 一个无向图中的每一个极大点(边)双连通子图称作此无向图的点(边)双连通分量。求双连通分量可用Tarjan算法。--百度百科 Tip:先学一下tarjan算法以及求割点割边的算法之后,再看会比较好理解一些。 点双连通和边双连通 连通的概念:在无向图中,所有点能互相到达 连通分量:互相联通的子图 点双连通:删掉一个点之后,图仍联通 边双连通:删掉一条边之后,图仍联通 概述 在一个无向图中,若任意两点间至少存在两条“点不重复”的路径,则说这个图是 点双连通的(简称双连通,biconnected) 在一个无向图中,点双连通的极大子图称为 点双连通分量(简称双连通分量 ,Biconnected Component, BCC) 性质 任意两点间至少存在两条点不重复的路径等价于图中删去任意一个点都不会改变图的连通性,即 BCC中无割点 若BCC间有公共点,则 公共点为原图的割点 无向连通图中 割点一定属于至少两个BCC,非割点只属于一个BCC 算法 在Tarjan过程中维护一个栈,每次Tarjan到一个结点就将该结点入栈,回溯时若目标结点low值不小于当前结点dfn值就出栈直到目标结点(目标结点也出栈)

记录一次线上内存溢出,server.tomcat.max-http-header-size导致

僤鯓⒐⒋嵵緔 提交于 2020-12-24 18:36:55
不是谷歌找不到,是搜索的方式不对 文件服务挂了,有点不可思议,线上内存设置的堆大小为16G,应该不会出现这种情况的,查看日志,发现在10:37到10:45文件挂掉这期间,发现一直再报org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space 本能觉得是内存泄漏了,不过没办法,线上并没有打印GC日志。涉及文件上传下载的一共就5个接口,开始查看代码压测,并没有复现。 晚上突然想起来线上另外两台服务器并没有挂掉,也应该存在同样的问题,随即去拿两台服务的内存快照,命令如下 jmap -dump:format=b,file=/root/heap.hprof 14714 有点大,两台的快照将近20G,用MAT进行分析,分析结果如下图: 根据报告发现byte[]和Http11OutputBuffer,看Http11OutputBuffer的名字感觉里面就是byte[],跟踪一下Http11OutputBuffer 发现是headerBuffer的问题应该是响应头缓冲区的问题,看下内容,是响应头 在网上查了下应该是配置的问题,去配置文件里找发现有一个配置有点相似

使用Email Send端口提示收到文件

倖福魔咒の 提交于 2020-12-17 20:51:34
今天小知将带大家学习EDI系统如何通过AS2端口接收文件并使用Email Send端口发送邮件提醒。配置邮件提示可以帮助企业在第一时间了解文件发送情况。在EDI系统中搭建如下图所示的工作流: 首先,需要在PROFILE以及FLOWS页面中分别配置自己以及交易伙伴的AS2信息,AS2端口的详细配置请参考文章: AS2 Connector 需要注意的是,本示例中AS2连接配置为“自发自收”,便于用户本地进行测试。其中,需要保证AS2端口的Settings页面下的信息与PROFILE下AS2 Profile页面的信息一致。 如上图,EDI系统PROFILE界面下选择AS2 Profile页面,其中Personal Id下的AS2 Identifier可以自定义,默认值为TestAS2。Personal Certificate下可以配置私钥证书,用户可以在此处配置自己的私钥,默认为test.pfx。Application URLs下的Receiving URL默认为http://localhost:8001/pub/Receive.rsb。Public Certificate公钥证书也选择默认值即可。 小知贴士:Public URL中包括了您的AS2 Identifier、Partner URL、Asynchronous MDN URL等信息,您可以将http://localhost

MFC程序设计小结

為{幸葍}努か 提交于 2020-12-12 17:29:27
由于毕业设计要用到MFC,因此本人这段时间开始学习MFC编程,边学边做,现将一些重要的知识点总结如下: 创建一个MFC程序,操作步骤很简单,要点就是选择MFC AppWizard(exe)、单文档或者多文档,然后点击完成。这样一个基本MFC框架代码就生成了。 用户通过使用资源编辑器来生成图形用户界面,VC++6.0可以处理的资源有Accelerator(快捷键)、Bitmap(位图)、Dialog(对话框)、Icon(图标)、Menu(菜单)、Toolbar(工具栏)、Version(版本信息)、String Table(字符串表)等。用户可以自主添加这些控件来制作图形界面。 MFC编程的核心思想是 消息映射、事件驱动。 消息一般指用户向应用程序传递的信息,例如用户单击鼠标左键,这就是一个消息。应用程序接受到消息后,就会做出相应的反应。这里的反应是通过 消息处理函数 实现的。在用户添加控件后,通过为其建立类向导,设置好相应的消息类型,添加消息处理函数。最后由用户来实现这些消息处理函数。关键字afx_msg来表明某函数为消息处理函数。 除了给控件建立相应的消息映射函数,我们还需要给控件建立相应的 变量,给控件添加建立类向导,选择成员变量一项, 确定变量名、变量类型 , 之后class wizard会自动添加相应的DDX函数,这是用来给指定对象 建立数据交换的环境 。 MFC是用c+

腾讯地图SDK自定义路况和字体

旧巷老猫 提交于 2020-12-09 03:14:25
使用场景 自定义路况是用于帮助修改路况的颜色和宽度,因为地图内部字体统一的,如果想要修改样式就可以通过相关文字接口进行定义 核心类和接口 类 接口 说明 TrafficStyle setCongestedStrokeColor 设置路况拥堵的描边颜色 setSeriousCongestedColor 设置路况极度拥堵的颜色 setSeriousCongestedStrokeColor 设置路况极度拥堵的描边颜色 setSlowColor 设置路况慢行的颜色 setSlowStrokeColor 设置路况缓行的描边颜色 setSmoothColor 设置路况畅通的颜色 setSmoothStrokeColor 设置路况畅通描边的颜色 setStrokeWidth 设置路况描边颜色的宽度 setWidth 设置路况填充颜色的宽度 TencentMapOptions setTrafficStyle 设置路况样式 setTypeface 设置自定义字体 核心点讲解 一、设置自定义路况 1、 初始化TrafficStyle并配置相关属性 TrafficStyle trafficStyle = new TrafficStyle(); //设置路况极度拥堵的颜色 trafficStyle.setSeriousCongestedColor(0xff92000a); //设置路况拥堵的颜色

腾讯位置服务地图SDK自定义路况和字体

白昼怎懂夜的黑 提交于 2020-12-04 13:35:54
使用场景 自定义路况是用于帮助修改路况的颜色和宽度,因为地图内部字体统一的,如果想要修改样式就可以通过相关文字接口进行定义 核心类和接口 类 接口 说明 TrafficStyle setCongestedStrokeColor 设置路况拥堵的描边颜色 setSeriousCongestedColor 设置路况极度拥堵的颜色 setSeriousCongestedStrokeColor 设置路况极度拥堵的描边颜色 setSlowColor 设置路况慢行的颜色 setSlowStrokeColor 设置路况缓行的描边颜色 setSmoothColor 设置路况畅通的颜色 setSmoothStrokeColor 设置路况畅通描边的颜色 setStrokeWidth 设置路况描边颜色的宽度 setWidth 设置路况填充颜色的宽度 TencentMapOptions setTrafficStyle 设置路况样式 setTypeface 设置自定义字体 核心点讲解 一、设置自定义路况 1、 初始化TrafficStyle并配置相关属性 TrafficStyle trafficStyle = new TrafficStyle(); //设置路况极度拥堵的颜色 trafficStyle.setSeriousCongestedColor(0xff92000a); //设置路况拥堵的颜色

7.关于内存你需要了解的(二)

坚强是说给别人听的谎言 提交于 2020-11-17 03:39:14
上一篇主要围绕内存的相关概念和特性做了阐述,这篇主要对内存的物理结构和特性进行描述。 内存物理结构 内存如何存取数据 1.内存物理结构 内存条主要由 存储颗粒、各种控制元器件、金手指 组成,而其中 最重要的就是内存的存储颗粒 。内存颗粒部件目前主要由外国厂商控制,虽然我们的国产颗粒也在奋起直追,但与国外大厂的差距还是挺大的,比较欣慰的是国产光威系列似乎评价还不错。 先来看一下内存条长什么样。上图就是内存条, 内存颗粒就是上图中这些黑色的方块 ,这些方块里面大有洞天。我们将它放大看一下: 每个内存颗粒里面是有多层存储颗粒 ,这里是 8 层, 每一层称为一个 bank 。把这 8 个 bank 叠在一起就是一颗存储芯片 chip 。每个 bank 是一个存储阵列,长得四四方方的,形状是一个矩形,上面是一个个的 存储单元 Cell 。bank 上面的这些存储单元会划分为行和列,所以 bank 可以 利用行和列唯一定位到一个存储单元 cell 上。上图描述的每个内存颗粒的大小为 128MB,颗粒里面每个 bank 是 16 MB,每个 cell 的大小为 1 byte(字节,8 bits)。通常来讲, 一个 cell 的大小也是 1 byte 。 我们看到上面的内存条有 8 个内存颗粒,但有些内存条会有 9 个内存颗粒,多出来那个是用来做 ECC 校验的(用来保证内存的数据是正确的

OSChina 周四乱弹 —— 你倒是让我进去啊!Let me in!

℡╲_俬逩灬. 提交于 2020-10-25 10:35:56
Osc乱弹歌单(2020)请戳( 这里 ) 【今日歌曲】 @ watergood :是时候分享一波我的这张纯音乐歌单了,过去的五年多时间里,我陆陆续续地把听到的好听的纯音乐添加了进去,目前一共65首,相信总有那么一首会带给你好心情。 《时间走得太快,我们还没有来得及看清快乐》- 理想青年 手机党少年们想听歌,请使劲儿戳( 这里 ) @ 巴拉迪维 : 大胆猜一下:今年端午节会下雨吗? 下雨多好, 在城市的最高的地方, “以前上学的时候特羡慕住在大城市这样的地方的人,夜里看万家灯火。现实是工作之后只想要住个清静的地方可以好好睡一觉。” 下雨天在家陪自己家小猫玩多幸福, @ Xiaoshiyue :最近一直做梦我有狗子和猫了,就是场景都是我在教训他们 不会的, 万一你遇到灵异事件了, 你和你的狗狗互换身体了, 画风就变了。 “和狗狗灵魂对换的@ Xiaoshiyue 很无奈每天还是得陪用自己身体的狗狗玩接球游戏。” 那到底养什么呢? @ aYa_Y :我喜欢猫,但我怕猫;我想养猫,但我有点洁癖;我喜欢二哈,但我讨厌🐶 猫太傲娇了, 不适合你养的, “最后还是气噗噗去买了。” 你就养狗吧, 你问有什么区别, 看明白了么? 我现在不想养小动物了, 我想养女朋友, @ 性感码农 :万事俱备,只欠女朋友 “你还是变成舔狗吧。” 有了女友, 待遇就不一样了, 不一样的体验, @ clouddyy