- 博客(82)
- 资源 (12)
- 收藏
- 关注
原创 《深入Linux内核架构》读书笔记--第三章 内存管理
这一章内容很多,有120页,主要描述了物理内存的管理。NUMA的内存节点,每个内存节点有若干内存域,内存域中的页帧,页表等。中间初始化的一些细节暂且略过,后面重点是伙伴系统原理、SLAB分配器原理。
2025-03-25 21:51:11
1021
原创 《深入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-4: dpvs.conf配置文件解读
在进行单臂负载均衡测试和双臂负载均衡测试时,发现dpvs.conf中很多配置项意思尚不理解。DPVS的配置文件条目比较多,参考资料和代码来理解配置文件,希望通过对配置文件的理解能更好的了解DPVS。下面的内容可能会有错误,会在以后的研究中进行修正。
2025-02-23 01:43:04
470
原创 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
原创 全网最简单vscode使用Makefile调试多文件的C/C++代码
vscode调试C/C++教程很多,操作麻烦,这里试图找到一个最简单的使用vscode调试C/C++代码的方法。这里是使用Makefile的多文件方式。
2024-01-05 18:03:13
2421
3
原创 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
原创 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数据包
2018-12-06
GDB中文手册
2012-09-14
C++输入输出流详解
2011-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人