深入理解 Linux 零拷贝以及 Linux 中 I/O 的底层原理,在kafka、nginx、golang等等各种文件传输场景中不同的优化手段和实际应用
2023-09-11 14:22:07 时间
深入理解 Linux 零拷贝以及 Linux 中 I/O 的底层原理,在kafka、nginx、golang等等各种文件传输场景中不同的优化手段和实际应用。从文件传输场景以及零拷贝技术深究 Linux I/O 的发展过程、优化手段以及实际应用。
前言
存储器是计算机的核心部件之一,在完全理想的状态下,存储器应该要同时具备以下三种特性:
速度足够快:存储器的存取速度应当快于 CPU 执行一条指令,这样 CPU 的效率才不会受限于存储器;
容量足够大:容量能够存储计算机所需的全部数据;
价格足够便宜:价格低廉,所有类型的计算机都能配备。
但是现实往往是残酷的,我们目前的计算机技术无法同时满足上述的三个条件,于是现代计算机的存储器设计采用了一种分层次的结构:
从顶至底,现代计算机里的存储器类型分别有:寄存器、高速缓存、主存和磁盘,这些存储器的速度逐级递减而容量逐级递增。
存取速度最快的是寄存器,因为寄存器的制作材料和 CPU 是相同的,所以速度和 CPU 一样快,CPU 访问寄存器是没有时延的,然而因为价格昂贵,因此容量也极小,一般 32 位的 CPU 配备的寄存器容量是 32✖️32 Bit,64 位的 CPU 则是 64✖️64 Bit,不管是 32 位还是 64 位,寄存器容量都小于 1 KB,且寄存器也必须通过软件自行管理。
第二层是高速缓存,也即我们平时了解的 CPU 高速缓存 L1、L2、L3,一般 L1 是每个 CPU 独享&#x
相关文章
- Linux 典型应用之缓存服务
- Linux Command fdisk 磁盘分区
- Linux Command sshpass 远程主机
- STM32MP157 Linux系统移植开发篇2:烧写linux镜像
- 戴文的Linux内核专题:21 配置内核 (17)
- linux学习-Linux系统启动过程
- Java 操作 Linux 服务器 上传文件并执行脚本
- Kafka启动遇到ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)
- 【Linux】/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
- Linux系统下安装kafka
- linux shell变量
- Linux命令之halt、poweroff、reboot
- MySQL 调优基础(五) Linux网络
- Kafka集群管理工具kafka-manager的安装使用
- Linux下配置Tomcat服务器
- Linux中使用expect脚本实现远程机器自动登录_linux shell
- 转 windows下安装pycharm并连接Linux的python环境 以及 windows 下notepad ++编辑 linux 的文件
- kafka最佳实践:Kafka Best Practices
- linux kernel 和 设备树的匹配
- Linux学习---linux下的彩蛋和各种有趣的命令
- 【正点原子Linux连载】第四十七章 Linux并发与竞争 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
- Linux 之 arm linux 与 windows 使用 tftp 进行文件传输的简单整理
- 【Linux】linux经常使用基本命令
- 【Linux】linux经常使用基本命令
- Linux学习笔记(25)linux批量管理
- Linux学习笔记(24)linux发邮件 mailx发邮件
- Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析(1-4)
- 【Linux】linux下用python获取底层硬件信息接口
- Redis--安装与配置(Linux与Windows)