抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

no-scalable lock及其解决方案

Summary 有共享就得考虑哪里有瓶颈 no-scalable问题的本质就是”即共享又私下算账, 最后还要那私账说事” Abstract所谓no-scalable lock就是,并发程序为了实现一致性,需要使用锁对共享资源进行互斥访问。如果使用的是一个no-scalable的锁,那么就会观察到随着cpu核心数量的上升,并发程序的性能并不能得到有效的提高,甚至会有所下降。 要理解这个问题的...

多态Tree Easy Pieces

Preface多态Tree Easy Pieces: 强制类型转换 公共前缀 this指针偏移 这里讨论的cpp的多态是指父类虚函数的执行是由指针具体指向的对象而定。下面将围绕如下例子说明: 1234567891011121314151617181920212223242526272829class Shape {public: virtual void area(){...

零拷贝

Preface用户态拿到硬件数据再发送需要几步? 首先硬件是归操作系统管理的,所以要想获取到硬件数据得先进入内核态 其次内核态和用户态的地址空间是隔离的,所以需要内核态和用户态直接的数据拷贝 ok,理解了前置基础,let jump into it 最原始的操作理解了上面提到的基础只是那么应该能够想到。以网卡为例 用户读数据 因为网卡(硬件)归操作系统管理,网卡需要先将数据发给内核bu...

使用container名再容器之间互ping

使用container名再容器之间互ping创建两个容器: 12docker run -it --name node0 ubuntudocker run -it --name node1 ubuntu 使用docker inspect查看node0的ip 1docker inspect node0 | grep IPAddr 容器内按照ping攻击apt install iputils-...

QOM系统的"对象构建"子系统

Preface关于为何需要使用device_class_set_parent_realize()的讨论 1234567void device_class_set_parent_realize(DeviceClass *dc, DeviceRealize dev_realize, ...

如何让已经运行的程序到后台运行

<c-z>挂起, 再开tmux, 在tmux里fg jobs fg bg disown <pid>shell退出不影响程序 中途改变想法了想记录日志,可以使用调试器修改描述符,从而记录日志123$ gdb -p <pid>(gdb) P (int)dup2((long)open("path/to/file", ...

qemu中设备实例化过程

设备实例化过程:vcpu线程和cpu实例如何对接Abstractqemu设备实例化大致可以分为两个阶段: QOM系统的初始化 具体设备的初始化 纯c编写的qemu为了实现面向对象开发了自己的一套QOM系统(qemu object module)。用户掌握QOM提供的接口后就可以在qemu开发过程中用上一些面向对象的特性。 这里1.2章将先会讨论qemu中用面向对象方式进行实例化的原理,然...

DDIA reading note

DDIA reading note存储结构Q 高吞吐量 TODO: 重看 append only SSTables(Sorted String Table) 分制(归并)的思想,合并有序段 有序 => 快找 append only => 磁盘顺序写入 LSM tree(日志结构合并树) 保存一系列在后台合并的SSTables 顺序写 => 写入更快 考虑写放大问...

linux虚拟网桥创建

linux虚拟网桥创建 ethernet https://wiki.archlinux.org/title/Network_configuration/Ethernet https://www.youtube.com/watch?v=rSxK_08LSZw&ab_channel=SethJennings https://wiki.archlinux.org/title/Netwo...

绘制火焰图

On-CPU 性能分析On-CPU即”CPU密集型” 12345$ git clone https://github.com/brendangregg/FlameGraph$ cd FlameGraph$ sudo perf record --call-graph=dwarf <cmd>$ sudo perf script | ....