自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 什么是Solidity?

https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#

2025-12-02 11:21:41 192

原创 【BCC】性能定位利器

BCC(BPF Compiler Collection)是一个开源的BPF工具集,包含70多个可直接使用的性能分析和故障定位工具,覆盖CPU、内存、文件系统等各方面。安装简便(如Ubuntu通过apt-get install bpfcc-tools),工具需root权限运行。其中syscount工具可统计系统调用频率,曾帮助定位CPU高负载问题(如epoll_wait高频调用)。BCC既提供即用型工具快速定位问题,也支持开发自定义工具,是高效的性能诊断工具箱。

2025-11-17 17:34:35 316

原创 使用火焰图定位cpu高问题

摘要:本文介绍使用FlameGraph生成火焰图定位CPU高占用问题的方法。首先从Gitcode镜像获取FlameGraph脚本,然后使用perf record命令采集系统或指定进程的调用栈数据(采样频率99Hz),最后通过管道将perf script输出转换为SVG格式火焰图。关键命令包括数据采集和图形生成两步,适用于快速诊断性能问题。

2025-10-30 21:02:08 181

原创 HUAWEI S6720S-32X-LI-32S-AC交换机配置

https://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&id=VLAN_Configuration_Commands

2025-10-18 17:24:36 250

原创 华为路由器丢包问题

服务器直连交换机,服务器a向服务器b发送数据,服务器b发现有丢包。联系华为技术人员定位,发现交换机对应端口RxPause异常。技术人员解释服务器初始不过来数据包,发送pasuse帧给交换机停止发包。

2025-10-11 19:08:08 934

原创 华为NetEngine 8000 M1A路由器配置

[*CE1] interface gigabitethernet 0/1/5[*CE1-GigabitEthernet0/1/5] portswitch[*CE1-GigabitEthernet0/1/5] undo shutdown[*CE1-GigabitEthernet0/1/5] port link-type trunk[*CE1-GigabitEthernet0/1/5] port trunk allow-pass vlan 5 9[*CE1-GigabitEthernet0/1/5]

2025-10-09 19:27:48 636

原创 环境安装记录

https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/

2025-09-30 17:13:15 74

原创 如何在qt中配置libssh

本文介绍了在Ubuntu 24.04系统下,将libssh库集成到Qt 5.14项目中的步骤:首先安装libssh-dev开发包和pkg-config工具,然后在Qt项目.pro文件中配置使用pkg-config自动链接libssh库,最后通过测试代码验证集成成功。测试程序正确输出libssh版本并创建SSH会话,表明libssh已成功集成到Qt项目中。

2025-09-15 17:00:18 346

原创 OVS之vlan Trunk模式

本文介绍了OVS中VLAN Trunk模式的使用。与Access模式不同,Trunk模式允许通过多个VLAN流量,适用于交换机间连接。文章详细讲解了三种Trunk端口配置方式:允许所有VLAN的端口、允许特定VLAN的标准端口(可设置Native VLAN是否带标签)以及Native-tagged端口(所有帧都带标签)。关键点在于Trunk端口不会剥离VLAN标签,因此不能连接终端设备。通过对比Access模式,说明了Trunk模式在网络设备互连中的必要性。

2025-09-01 09:30:00 1092

原创 OVS之设置vlan

本文介绍了在Open vSwitch(OVS)中设置VLAN实现网络隔离的方法。主要内容包括:1) 使用Access模式为OVS端口设置VLAN tag,实现同一网格内容器的互通;2) 通过命令行示例展示如何为多个端口配置相同VLAN;3) 指出在更复杂的跨网格通信场景下,VLAN的局限性,需要结合流表规则才能实现。文章对比了简单网络隔离和复杂网络需求的不同解决方案,并提供了OVS官方文档参考。

2025-08-26 15:17:15 561

原创 OVS之流表使用

本文介绍了使用OVS流表实现容器网络隔离的方法。通过将容器连接到OVS交换机并按网格划分网络组,同一网格内容器需能相互通信。文中以5个容器为例,展示了如何设置OVS流表规则:为每个入端口配置转发到其他所有端口的动作,从而实现网格内全互通。相比VLAN隔离方案,流表方式更为灵活但配置稍复杂。最后提供了查看流表的命令,并预告后续将介绍OVS中VLAN的使用方法。

2025-08-19 15:39:07 509

原创 解决docker中bgp邻居无法建立问题

项目以docker作为软件路由器,里面运行frr bgpd进程,所有docker连接在ovs上,使用ovs定制网络。不使用docker默认的host和bridge。

2025-04-25 16:13:39 858 1

原创 OVS学习

记录下找到的OVS学习资料,方便以后查看:https://docs.openvswitch.org/en/latest/https://arthurchiao.art/blog/ovs-deep-dive-0-overview/https://github.com/openvswitch/ovs/blob/main/Documentation/tutorials/ovs-advanced.rst。

2025-04-03 14:23:21 253

原创 cesium前台踩坑记录

最近接手一个前台使用cesium的项目,由于没有经验,记录下过程中的坑点,避免以后再踩坑。

2025-03-26 17:03:48 251

原创 docker常用操作记录

记录下个人学习容器的相关操作,方便后续查找。

2025-03-23 12:03:02 251

原创 XDP + VPP方案探究

我们验证了XDP + VPP方案是可行的,但文章示例只是说明可行性。这种方式相比DPDK独占网卡,提供了更高的灵活性。更深的使用欢迎大家一起探讨学习。

2025-03-14 11:31:07 769 1

原创 探寻TCP连接建立之初ssthresh的大小

(如65535字节),以便充分探索可用带宽。其核心目标是平衡探测效率与拥塞风险,直到首次拥塞事件触发动态调整。具体数值因操作系统和TCP实现而异,但逻辑一致:通过高初始阈值最大化早期吞吐量,随后依赖网络反馈逐步优化。TCP连接建立之初的慢启动阶段(cwnd = IW),ssthresh取值多少呢?在TCP拥塞控制的慢启动阶段,初始的慢启动阈值(,窗口按线性增长(每RTT增加1个MSS)。会被更新为当前拥塞窗口(在TCP慢启动阶段,

2025-03-04 11:27:13 992

原创 详解TCP拥塞控制中的快速恢复

快速恢复是TCP拥塞控制算法(如Reno、NewReno)的关键机制之一,旨在减少因部分丢包导致的吞吐量骤降。它通过优化传统TCP Tahoe的“超时重置窗口”策略,在检测到部分丢包时保持网络中的数据流,从而更高效地恢复传输。以下是其核心原理和实现细节:假设,发生单个数据包丢失:快速恢复通过以下机制优化TCP性能:它是现代TCP实现(如Reno、NewReno)的核心组件,显著提升了网络在高丢包环境下的稳定性和效率。后续算法(如CUBIC、BBR)进一步针对高带宽时延积网络优化,但快速恢复的基本思想仍是拥塞

2025-03-03 21:33:36 1466

原创 TCP协议中syn与ack处理机制的差异

SYN和ACK报文段在序列号处理上的差异,反映了它们在连接建立和数据确认过程中的不同角色。它的核心作用是同步双方的初始序列号(ISN, Initial Sequence Number),确保后续数据传输的有序性。若每个ACK都需确认,会引入额外的握手(如“确认的确认”),降低效率。如果SYN丢失或ACK丢失,发送方会重传SYN,确保连接建立的可靠性。这意味着SYN需要被可靠传输,若未收到确认(ACK),发送方会触发超时重传。中,SYN部分会消耗一个序列号(服务器的ISN),但ACK部分不消耗序列号。

2025-02-27 15:33:32 707

原创 AF_XDP Multi-Buffer的介绍

启用 AF_XDP 的多缓冲区支持需双重配置用户空间:绑定套接字时添加XDP_USE_SG标志。内核空间:XDP 程序使用xdp.fragssection 声明支持。此机制扩展了 AF_XDP 对复杂网络流量的处理能力,适用于高性能网关、DPI 等场景。开发者需权衡处理复杂度与内存效率,确保分片组装逻辑的正确性。

2025-02-25 11:11:03 1189

原创 XDP_USE_NEED_WAKEUP的解释

通过将控制权交给用户空间,实现了内核与用户空间的高效协作。它在牺牲少量延迟的情况下,显著降低了 CPU 开销,是构建 100Gbps+ 高性能网络应用的基石技术之一。正确使用此标志需要结合业务场景,平衡吞吐量、延迟和资源利用率。

2025-02-24 17:52:55 718

原创 xdp-tutorial packet03-redirecting中Assignment2的理解和思考

packet03-redirecting中的assignment2一直没理解是什么意思,困扰了好几天。

2025-02-15 16:29:02 209

原创 《Linux内核观测技术BPF》学习笔记 (四)

正常显示了每秒收到的各ip协议数据包的数量。为什么注释掉bpf.h就可以?

2025-01-17 23:52:56 248

原创 《Linux内核观测技术BPF》学习笔记 (三)

这里需要是因为classifier.c中分类器函数classification定义为static,而libbpf不支持静态程序,不知官方例子为啥这样写?,大概意思就是规则已经存在,不能add,只能change。这里需要将eth0替换成当前环境上的ens33。

2025-01-14 23:20:39 390

原创 《Linux内核观测技术BPF》学习笔记 (二)

test为编译生成的可执行文件。书上uprobe挂载到go代码上,自己实现挂载到c代码上,原理相同。

2024-12-31 23:21:17 250

原创 《Linux内核观测技术BPF》学习笔记 (一)

内核版本:5.15.0-127-generic。

2024-12-27 22:28:01 344

原创 ebpf学习

记录一下,找到的好的ebpf学习资料:

2024-12-03 16:19:48 279

原创 巨页内存使用

发现一篇文章写的好,保存下,方便以后查看:https://www.cnblogs.com/lygin/p/16729407.html

2024-11-29 17:19:12 146

原创 nginx学习

nginx学习

2024-07-26 10:22:57 313

原创 smallchat改造

smallchat是redis作者使用c开发的聊天服务器,实现了聊天室的功能。核心代码200多行,使用了IO多路复用技术。是一款适合学习IO多路复用的开源软件。原实现是使用select实现了IO多路复用。本文改造了原代码,改用epoll实现,并使用reacotor模型,使代码更精简,功能更聚合,方便使用和理解。

2023-11-30 19:15:30 487

原创 IO多路复用学习(5)reactor网络模型

reactor模型组成:非阻塞的io + io多路复用特征:基于事件循环,以事件驱动或事件回调的方式来实现业务逻辑理解:对io的处理转换为对事件的处理。单reactor模型redis单reactor模型 + 任务队列 + 线程池skynet多reactor多线程memcached多进程nginx

2023-10-23 19:44:35 96

原创 IO多路复用学习(4)阻塞IO和非阻塞IO

read从内核读缓冲区中将数据拷贝到用户空间,write把数据从用户空间拷贝到内核的写缓冲区中。

2023-10-13 11:51:32 235

原创 线程池技术

1.任务耗时长,主线程执行任务阻塞其他任务执行。把耗时的任务交给线程池处理。I/0阻塞型,计算处理型。1.系统资源有限,不可能无限创建线程,线程太多调度复杂,加解锁,性能反而下降。2.消费者线程:就是线程池,有固定大小的线程,处理任务。1.生产者线程:复杂任务分发,把任务交给线程池处理。2.频繁创建销毁线程消耗系统资源,影响性能。生产者往队列里放任务,消费者从队列里取任务。如果队列从空变为非空,唤醒消费者线程。如果队列为空,消费者线程阻塞休眠。2.需要线程并发处理。线程池干脏活,累活。

2023-09-21 10:08:51 68

原创 IO多路复用学习(3) epoll

本篇介绍epoll的相关机制和用法。epoll API有三个:epoll_create,epoll_wait,epoll_ctl。三个API共同使用才能完成epoll IO多路复用的功能,这里是与select和poll不一样的地方。

2023-09-18 14:26:27 213

原创 IO多路复用学习(2) poll

2.poll

2023-08-29 19:38:05 178 1

原创 IO多路复用学习(1) select

select/poll epoll nio,bio,aio reactor模型

2023-08-22 15:47:27 154 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除