自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (12)
  • 收藏
  • 关注

原创 《深入Linux内核架构》读书笔记--第三章 内存管理

这一章内容很多,有120页,主要描述了物理内存的管理。NUMA的内存节点,每个内存节点有若干内存域,内存域中的页帧,页表等。中间初始化的一些细节暂且略过,后面重点是伙伴系统原理、SLAB分配器原理。

2025-03-25 21:51:11 1021

原创 集群通信原语&NCCL

broadcast reduce gather集群通信原语的原理和nccl-test代码印证。

2025-03-14 11:58:45 954

原创 《深入Linux内核架构》读书笔记--第二章 进程管理与调度

这一章花了好几天才看完,内容非常多,一开始尝试书本结合代码跟踪理解,但是效率太低,进度太慢。linux2.6的代码和5.15的代码差距也比较大,很多结构和细节都发生了变化, 只是大体的框架逻辑没变。所以中间开始少跟代码,更关注概念定义、逻辑本身。如果日后有需要编码,可以再去深入学习代码细节。比如关键点task_struct我就没有弄出来,逐个成员去理解它们的含义了。可能是由于书本翻译的原因,一些语句初看不太容易理解,也去查询其他的资料来帮助理解,有用的资料也会记录。

2025-03-07 02:44:22 748

原创 《深入Linux内核架构》读书笔记--第一章 简介与概述

这是《深入Linux内核架构》的读书笔记,我将把我觉得重要的内容记录下来,而以前知道和一些常识的不做记录。比如一些双线链表基础的数据结构的内容就不会记录, 而多级页表需要记录下来。目前只看了第一章概述,感觉是打开了一扇门,能够看清内核全貌的大门。而以前用过用户态的编程,对于内核的了解是管中窥豹,不得真章。进程切换:进程释放CPU时,保存进程状态;进程重新激活时,恢复状态。调度:内核控制进程之间共享CPU时间的分配。如A进程 30% B进程 70%地址空间分为内核空间和用户态空间。

2025-02-28 14:23:21 897

原创 DPVS-6:软件框架简介

DPVS软件框架简介,分为4个部分: 网络设备管理, 轻协议栈, 负载均衡核心,控制面工具。

2025-02-27 03:03:20 523

原创 DPVS-5: 后端服务监控原理与测试

DPVS被动监控的原理逻辑,后端服务的状态变化以及实际测试效果验证

2025-02-24 16:05:18 838

原创 DPVS-4: dpvs.conf配置文件解读

在进行单臂负载均衡测试和双臂负载均衡测试时,发现dpvs.conf中很多配置项意思尚不理解。DPVS的配置文件条目比较多,参考资料和代码来理解配置文件,希望通过对配置文件的理解能更好的了解DPVS。下面的内容可能会有错误,会在以后的研究中进行修正。

2025-02-23 01:43:04 470

原创 DPVS-3: 双臂负载均衡测试

DPVS 双臂模式的负载均衡环境搭建与测试

2025-02-23 01:06:12 359

原创 DPVS-2:单臂负载均衡测试

上一篇编译安装了DPVS,这一篇开启DPVS的负载均衡测试 : 单臂 + FULL NAT模式。

2025-02-21 21:32:55 547

原创 DPVS-1:编译安装DPVS (ubuntu22.04)

DPVS在UBUNTU22.04上的编译安装和运行记录

2025-02-21 02:08:19 551

原创 RDMA ibverbs_API功能说明

ibverbs API使用说明,用来进行RDMA传输开发

2025-02-19 11:50:34 1171

原创 RedisDB双机主从同步性能测试

测试程序单连接写入并且同步只有 10000 req/s 左右的写入性能。如果关闭PUB,单纯写入会有20000 req/s左右性能。通过benchmark验证,单链接也是18000 req/s写入性能。

2025-01-09 21:17:11 581

原创 libevent定时器的性能测试(与rte_timer对比)

100万个定时器,设置超时,回调后继续set定时器, 不停循环。测试定时器轮询,reset的时间占比,来评估定时器性能。 libevent定时器和DPDK rte_timer进行一个性能对比。

2025-01-08 18:24:19 418

原创 DPDK定时器rte_timer的性能测试

DPDK 单worker线程使用定时器处理会话超时,会有多影响性能 ?那么今天就来研究一下 rte_timer的性能到底如何。用循环超时回调的方式,查看timer轮询处理所占整个线程cycles的百分比

2025-01-08 01:49:43 448

原创 ubuntu扩展逻辑卷大小 (安装系统时默认只使用一半)

ubuntu系统安装时,一不留神,默认的磁盘空间只利用了一半,还有一半闲置了。我们就得扩展利用这一半。或者虚拟机增加了虚拟磁盘的大小,也需要把卷再扩展一遍。80G的硬盘,只用了39G。

2024-12-24 13:13:24 399

原创 SimAI-Simulation初步认识

模拟器用于指定工作负载、以及自定义网络拓扑进行训练仿真,得出训练过程中的训练耗时以及通信耗时等相关情况。使得大模型在部署前可以进行无GPU设备的参数调优。涉及术语说明:asw = 接入交换机, LEAFpsw = Pod交换机, SPINEnv_switch = GPUserver内一个nvlink转发芯片, 一台GPU Server只有一个nv_switch。

2024-12-23 16:11:47 927 1

原创 ubuntu22.04 nginx配置下载目录,亲测成功

nginx配置下载目录,需要修改/etc/nginx/sites-available/default

2024-12-22 02:10:04 377

原创 ubuntu22.04安装SecureCRT8.7.3,完成顺利使用

Ubuntu22.04安装SecureCRT并破解过程,包含对应的安装包和依赖库以及相应工具

2024-07-15 17:54:09 1520 2

原创 双机多网口配置同网段地址,可以通过目的IP确定接收数据的网卡吗?

从ARP报文来看,10.0.0.21的MAC响应ens38和ens39都有,但是ens39的MAC响应是先收到的,ARP表中 10.0.0.21,10.0.0.22的mac地址都是 ens39 00:0c:29:4f:a6:ce。机器B ens38 00:0c:29:4f:a6:c4 10.0.0.21/24 ens39 00:0c:29:4f:a6:ce 10.0.0.22/24。而主机对ARP请求的响应,可能是都从一个接口处,也可能各个接口都出,这种行为的区别暂不清楚受到哪些内核配置的影响。

2024-05-28 15:28:56 1232

原创 单线程内存拷贝速度居然比硬盘写入还慢?

单线程内存顺序拷贝,首次拷贝性能不如SSD写入性能!

2024-04-10 16:45:08 564

原创 全网最简单vscode使用Makefile调试多文件的C/C++代码

vscode调试C/C++教程很多,操作麻烦,这里试图找到一个最简单的使用vscode调试C/C++代码的方法。这里是使用Makefile的多文件方式。

2024-01-05 18:03:13 2421 3

原创 Go实现ECDH密钥交换-X25519

ECDH, X25519算法,实现一次RTT密钥交换。 Go语言1.20版本

2023-11-23 16:43:24 1041

原创 DPDK线程初始化逻辑详解

介绍DPDK 工作线程和主线程的初始化过程,以及用户如何使用worker线程的方法

2023-08-10 12:00:20 1080

原创 iperf3跑满100G网卡实测记录

其中发送速率12016406,基本稳定在1200000 KB/s以上。三个窗口分别同时开3个iperf3 client,跑10分钟。三个iperf3 Client, 合并速率大约 92GB/s。Kbps Mbps Gbps换算倍数是 1000。三个窗口分别开3个iperf3 server。ubuntu20.04, 系统设置默认状态。Kpbs 与 KB/s换算关系是 x8。两台服务器 100G网卡对插直连。

2023-07-27 16:13:16 4659 1

原创 RDMA RoCev2 CM建链和Socket建链测试

RDMA在高性能计算,AI大模型训练中发挥着重要的作用。主流支持RDMA的协议有IB、RoCev1、RoCev2、iWARP。其中RoCev2是应用最广泛的协议,因为其RDMA over UDP/IP,不依赖昂贵的IB网络设备,同时支持路由,性能上也接近原生IB水准。

2023-07-11 17:01:33 3801

原创 arch_mem_object_align的作用是什么?

DPDK在申请内存池时,会对OBJ大小进行重新计算最终进行重计算的函数是根据注释,此函数是让对象的首地址均匀的落在内存的channels和ranks中(X86平台下)。

2023-07-10 13:38:26 213

原创 无损网络实现的几种技术

基于端口、基于流、基于流量调度所实现无损网络的技术

2023-06-25 18:31:29 1356

原创 大小端与字节序位序的关系实测

大小端对字节序和位序的影响,网络传输会影响字节序和位序吗?位结构体和大小端有什么关联?

2023-05-23 16:48:28 1105 1

原创 Go实现一个简单的webserver,提供文件下载服务

代码通过ChatGPT获得,稍加修改。

2023-04-13 00:09:23 900

原创 Golang利用Pid实现单进程模型

使用读写Pid(进程号)文件的方式实现单进程模型。Golang 在Linux平台实现。

2022-12-16 18:08:48 895

原创 Golang的IP、字符串、整形之间的转换

golang IP []byte string uint32转换

2022-11-04 18:26:55 1541

原创 URDMA跑起来

urdma运行环境搭建,测试示例。

2022-09-02 16:45:03 534

原创 DPDK KNI介绍

DPDK KNI接口的说明,rte_kni内核模块的使用方式和原理。

2022-07-21 12:20:46 1146

原创 gettimeofday和clock_gettime性能对比

测试方法gettimeofday 和 clock_gettime的7种类型时间的对比。clock_gettime类型如下类型含义CLOCK_REALTIME从1970.1.1到目前的时间CLOCK_MONOTONIC系统启动到现在的时间CLOCK_THREAD_CPUTIME_ID线程所消耗的时间CLOCK_PROCESS_CPUTIME_ID进程所消耗的时间CLOCK_MONOTONIC_RAW基于硬件时间CLOCK_REALTIME_CO

2022-03-29 15:13:48 3669 1

原创 Wireguard握手交互代码分析

Wireguard握手交互代码分析消息结构握手请求消息struct message_handshake_initiation { struct message_header header; // header里只有一个type, 发起0x01 __le32 sender_index; // Sender的标识,自定义。 u8 unencrypted_ephemeral[NOISE_PUBLIC_KEY_LEN]; // 本地临时公钥 // AEA.

2021-11-17 17:59:06 3252 1

原创 DFINITY基本架构

DFINITY简介DFINITY (Internet Computer): 通过结合区块链网络节点的集体计算能力来创建“Internet Computer”,从而彻底改变互联网。Internet Computer是基于Internet Computer Protocol(ICP)区块链计算协议实现。DFINITY 的目标是成为一个快速、安全、可扩展的云平台,它将为公共互联网的扩展出更多的功能,允许用户直接部署应用程序和安装代码,而不会出现影响比特币和以太坊等其他主要区块链的拥堵问题。DFINITY =

2021-11-04 18:49:12 13979

原创 DID分布式数字身份简化模型

术语说明分布式身份标识符: Distributed Identity,DID,具备去中心化可验证,自主管理,全球唯一的特性;内部最核心内容为公钥+身份信息可验证凭证:Verifiable Credentials, VC,主要为声明的集合声明:claims,包含凭证颁发者为DID身份赋予的其他属性值和颁发者的签名可验证表达: Verifiable Presentation, VP, 主要包含可验证凭证VC和持有者的签名身份说明持有者: Holder, 自主生产DID,向注册机构上传DID,向颁发

2021-10-12 15:36:25 11882

原创 VRF proof极简理解

VRF proof术语说明SK: 私钥PK: 公钥M:输入值R:哈希输出P:证明函数证明人根据输入M和私钥计算出唯一的哈希值RR = VRF_Hash(SK, M)证明人根据输入M和私钥计算出唯一的证明PP = VRF_Proof(SK, M)验证者将证明转换成哈希值R = VRF_P2H ( P )即 VRF_Hash(SK, M) == VRF_P2H(VRF_Proof(SK, M))验证者校验True/False = VRF_verify(PK, M, P)特性

2021-10-12 11:45:44 438

原创 SM9原理极简介绍

KGCKey Generate Center可信机构产生主私钥和主公钥: Master Priv Key 、Master Pub Key产生用户私钥: Master Priv Key与用户Identity(如电话号码)计算生成用户私钥User Priv Key。签名方法签名(User Priv Key 和 Master Pub Key)一起加密生成数字签名。验证签名(User Identity 和 Master Pub Key)一起验证数字签名。需要可信机构KGC的存在,并生成与用户Ide

2021-10-12 11:34:11 7243

原创 试用Rawsocket收发二层包

测试代码'''#include#include#include#include#include#include#include#include#include #include#include#include#include#include #include #define BUFFSIZE 1024const char* device = "enx00e04c680125";const unsigned char dst_mac[6] = {0x00,0x0

2021-06-28 00:10:37 2268 1

VPP简单插件源码Hook数据包

https://blog.youkuaiyun.com/jacicson1987/article/details/84849177 注册node,注册插件,hook数据包

2018-12-06

ComTool串口工具

一个小而精悍的串口调试工具。 打开串口,设置波特率等参数,设置一次会被一直默认,直到被修改。 支持文本,16进制的 收发。

2013-10-30

socket tool

此工具可以做TCP 客户端、服务端; 可以TCP\UDP链接 支持文本 十六进制 excel 等格式的输入输出。 做socket测试非常好用的工具

2013-10-30

Thinking in Java

Thinking in Java

2013-04-09

SQL21天学通

21天学通SQL语句。。很精简,适合初学者快速学习。。

2013-04-09

数据结构(C语言版)

严蔚敏编著 清华大学出版社出版的 数据结构 教材 有完整目录,清晰版PDF文件。

2012-09-27

GDB中文手册

5.1.1 设置断点 5.1.2 设置观察点 5.1.3 设置捕获点 5.1.4 删除断点 5.1.5 停用断点 5.1.6 中断条件 5.1.7 断点命令列表 5.1.8 断点菜单 5.1.9 “不能插入断点” 5.1.10 “调整过的断点地址……”

2012-09-14

胡晓光数字电子技术基础课后答案.

胡晓光数字电子技术基础课后答案.北航滴书。。十一五规划

2011-10-17

C++输入输出流详解

ofstream 类支持磁盘文件输出 如果在构造函数中指定一个文件名,当构造这个文件时该文件是自动打开的 ofstream myFile("filename",iosmode); iosmode 可以在调用默认构造函数之后使用 open 成员函数打开文件 ofstream myFile; // 声明一个静态输出文件流对象 myFile.open("filename",iosmode); // 打开文件,使流对象与文件建立联系 ofstream* pmyFile = new ofstream; // 建立一个动态的输出文件流对象 pmyFile->open("filename",iosmode); // 打开文件,使流对象与文件建立联系

2011-10-17

DOS命令大全

第1、最常用的命令   cd     改变当前目录       sys   制作DOS系统盘   copy    拷贝文件         del   删除文件   deltree   删除目录树        dir   列文件名 …………

2011-10-17

空空如也

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

TA关注的人

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