- 博客(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
原创 如何在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
原创 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》学习笔记 (三)
这里需要是因为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
原创 巨页内存使用
发现一篇文章写的好,保存下,方便以后查看:https://www.cnblogs.com/lygin/p/16729407.html
2024-11-29 17:19:12
146
原创 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
原创 线程池技术
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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅