蒸汽日记

高性能异步IO机制——io_uring

一、io_uring的引入 为了方便说明io_uring的作用,先举一个通俗点的例子 1、通过异步提高读写的效率 假设有一批

蒸汽 发布于 2024-11-08

epoll的实现原理

在前文已经基于dpdk实现了用户态协议栈,但是有个缺陷就是不能连接多服务端。这也就引出了本文的目的——如何实现自定的 epoll。 为什么不用系统自带的epoll? 用户态协议栈是指运行在用户态的协议栈,与传统的内核态协议栈相比,它有许多优点,如灵活性、可扩展性、高性能等。因为可以避免内核态和用户态

蒸汽 发布于 2024-11-07

DPDK实现用户态udp协议栈

一、网络协议栈 如何实现网络协议栈,首先需要拿到网络数据,有以下几种方式 1)原生socket 2)netmap 3)dpdk 1、网络通信过程

蒸汽 发布于 2024-11-07

服务器百万并发实现

本文利用四台虚拟机,实现了百万并发的项目,并解决其中遇到的一些问题 一、百万并发项目 准备4个虚拟机,其中一个4G内存,2核CPU;另外三个2G内存,1核CPU。

蒸汽 发布于 2024-11-07

网络IO-select/poll/epoll详解与对比/事件驱动模型reactor

一、网络IO请求 网络I/O请求是指在计算机网络中,向其他主机或服务器发送请求或接收响应的操作。这些请求可以包括获取网页、下载文件、发送电子邮件等。网络I/O请求需要使用合适的协议和通信方式来进行数据传输,例如HTTP、FTP、SMTP等。 要完成一个完整的 TCP/IP 网络通信过程,需要使用一系

蒸汽 发布于 2024-11-07

设计模式精进

定义 设计模式是什么:解决特定环境下,重复出现的,特定问题的解决方案(解决问题的固定套路) 场景 具体需求既有稳定点,又有变化点,希望修改少量的代码,就可以适应需求的变化 全是稳定点,变化点都不适合用设计模式

蒸汽 发布于 2024-11-07

分布式版本控制Git

git git定义:分布式版本控制工具 github定义:代码托管平台 作用: 1.保存文件的所有修改记录

蒸汽 发布于 2024-11-07

随处可见的红黑树

红黑树 红黑树的应用场景 # c++ stl map,set(红黑树的封装) # 进程调度cfs(用红黑树存储进程的集合,把调度的时间作为key,那么树的左下角时间就是最小的) # 内存管理(每次使用malloc的时候都会分配一块小内存出来,那么这么块就是用红黑树来存,如何表述一段内存块呢,用开始地

蒸汽 发布于 2024-11-07

C++11实现线程池

本文使用C++11实现实现线程池,涉及的技术如下: 可变参数 std::future decltype packaged_task bind 支持可变参数列表 支持获取任务返回值 线程池的设计流程 设计线程池类。

蒸汽 发布于 2024-11-07

Linux系统运行时命令--网络IO性能监测

网络IO性能监控 5 网络IO性能监控 5.1 性能指标 通常用带宽、吞吐量、延时、PPS(Packet Per Second)等

蒸汽 发布于 2024-11-06