- 博客(1593)
- 资源 (134)
- 论坛 (2)
- 问答 (2)
- 收藏
- 关注
转载 Redis 多线程网络模型
作者:allanpan,腾讯 IEG 后台开发工程师,公众号:远赴星辰。目录导言Redis 有多快?Redis 为什么快?Redis 为何选择单线程?Redis 真的是单线程?Redis 多线程网络模型总结导言在目前的技术选型中,Redis 俨然已经成为了系统高性能缓存方案的事实标准,因此现在 Redis 也成为了后端开发的基本技能树之一,Redis 的底层原理也顺理成章地成为了必须学习的知识。Redis 从本质上来讲是一个网络服务器,而对于一个网络服务器来说.
2021-03-07 21:31:54
5
原创 2021年三月上旬推荐阅读文章
Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)https://cloud.tencent.com/developer/article/1368153,本站《Linux用户抢占和内核抢占详解(概念, 实现和触发时机)》《阿里云技术和方案介绍》https://mp.weixin.qq.com/s/Gm9gX9IwL5y3zB_v3JbAmw《喜马拉雅自研网关架构演进过程》https://mp.weixin.qq.com/s/aeb7PxKw2Xx5...
2021-03-07 20:48:16
10
转载 Linux用户抢占和内核抢占详解(概念, 实现和触发时机)
1 非抢占式和可抢占式内核为了简化问题,我使用嵌入式实时系统uC/OS作为例子首先要指出的是,uC/OS只有内核态,没有用户态,这和Linux不一样多任务系统中, 内核负责管理各个任务, 或者说为每个任务分配CPU时间, 并且负责任务之间的通讯.内核提供的基本服务是任务切换. 调度(Scheduler),英文还有一词叫dispatcher, 也是调度的意思.这是内核的主要职责之一, 就是要决定该轮到哪个任务运行了. 多数实时内核是基于优先级调度法的, 每个任务根据其重要程度的...
2021-03-07 20:42:29
25
原创 CentOS 7 Linux实时内核下的epoll性能分析
CentOS 7 Linux实时内核下的epoll性能分析rtoax2021年3月4日1. 问题引入一些参考链接见文末。1.1. 测试调试环境非实时环境:3.10.0-1062.el7.x86_64CentOS Linux release 7.7.1908 (Core)实时环境:3.10.0-1127.rt56.1093.el7.x86_64CentOS Linux release 7.4.1708 (Core)1.2. 问题描述epoll就不用多说了,对于redis、m
2021-03-04 18:10:41
28
1
原创 GCC online documentation
https://gcc.gnu.org/onlinedocs/Latest releasesThese are manuals for the latest full releases.GCC 10.2 manuals: GCC 10.2 Manual(also in PDForPostScriptoran HTML tarball) GCC 10.2 GNU Fortran Manual(also in PDForPostScriptoran HTML tarball...
2021-03-02 13:08:50
15
翻译 GNU:GCC -O 优化等级
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.htmlGCC提供选项控制代码的优化等级,这些选项可以实现不同程度的优化。没有任何优化选项的话,编译时的目标是降低编译成本,并使调试产生预期的结果。语句是独立的:如果你使程序停止在语句之间设置的断点处,你可以改变任何变量的值或者改变程序计数器的值使程序执行任意函数中的语句并得到源代码中期望的结果。打开优化标志使编译器尝试以编译时间和可能的调试程序的能力为代价来改进性能和/或代码大小。编译器
2021-03-02 12:59:40
45
3
原创 2021年二月下旬文章导读与开源项目仓库 | scatter-gather DMA,SR-IOV,ARP欺骗,中断,Lockdep,virtio,vhost
目录文章目录开源项目仓库[转]浅谈scatter-gather DMASR-IOV:网卡直通技术[黑客入门] 连接公共WIFI有多危险(ARP欺骗)DPDK ACL算法介绍文章目录Linux PCI驱动框架分析(一)https://www.cnblogs.com/LoyenWang/p/14165852.htmlLinux PCI驱动框架分析(二)https://www.cnblogs.com/LoyenWang/p/14209318.htmlLinux PCI.
2021-02-27 17:12:51
162
2
转载 Linux虚拟化KVM-Qemu分析(十)之virtio驱动
目录1. 概述2. 数据结构3. 流程分析3.1 virtio总线创建3.2 virtio驱动调用流程参考《Linux PCI驱动框架分析:(Peripheral Component Interconnect,外部设备互联)》《Linux虚拟化KVM-Qemu分析(一)》《Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化》《Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)》《Linux虚拟化KVM-Qemu分析(四)之CPU虚拟化(2.
2021-02-27 17:12:07
52
1
转载 Linux AIO的新归宿:io_uring(介绍,系统调用)
目录背景io_uringio_uring 准备阶段IO 提交IO 收割其它高级特性IORING_REGISTER_FILESIORING_SETUP_IOPOLLIORING_REGISTER_BUFFERS关于名字总结参考在正文开始之前,我们先来看一段对话(演绎版本)Jens Axboe :Linus,我有个好东西,你瞅瞅?Linus:啥玩意儿,不是已经有 aio 了么,为啥又来一套,你咋不去好好修 aio 的问题。aio 还有 balabala
2021-02-27 17:04:38
56
转载 Linux进程调度:完全公平调度器 Completely Fair Scheduler 内幕| linux-2.6
https://www.ibm.com/developerworks/cn/linux/l-completely-fair-scheduler/index.html?目录Linux 调度器简史CFS 概述CFS 内部原理优先级和 CFSCFS 组调度调度类和域其他调度器展望相关阅读Linux 调度器是一个颇有压力但很有趣的课题。一方面它涉及应用 Linux 的使用模型。尽管 Linux 最初开发为桌面操作系统环境,但现在在服务器、微型嵌入式设备、主机和超级计.
2021-02-27 15:59:24
15
原创 单指令多数据SIMD的SSE/AVX指令集和API
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#TechnologiesMMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 FMA AVX-512 KNC AMX SVML Othervoid _mm_2intersect_epi32 (__m128i a, __m128i b, __mmask8* k1, __mm...
2021-02-27 15:49:11
38
2
转载 如何理解高并发中的协程?协程的实现和历史
目录普通的函数从普通函数到协程图形化解释函数只是协程的一种特例协程的历史协程是如何实现的普通的函数def func(): print("a") print("b") print("c")这是一个简单的普通函数,当我们调用这个函数时会发生什么? 调用func func开始执行,直到return func执行完成,返回函数A 是不是很简单,函数func执行直到返回,并打印出:abc注意这段代码是用pytho.
2021-02-27 15:39:40
27
转载 vhost(vhost-user)网络I/O半虚拟化详解:一种 virtio 高性能的后端驱动实现
目录什么是 vhost为什么要用 vhostvhost 的数据流程总结什么是 vhost-uservhost-user 的实现几个例子Vhost-user详解1.建立连接设置共享内存设置虚拟队列信息2.数据通路处理3.OVS轮询逻辑总结相关阅读什么是 vhosthttps://yq.aliyun.com/articles/485336vhost 是 virtio 的一种后端实现方案,在 virtio 简介中,我们已经提到 virt.
2021-02-27 15:20:54
35
转载 PCIe规范的扩展:SR-IOV(Single Root I/O virtual)网卡直通技术
目录Single Root I/O虚拟化(SR-IOV)概述SR-IOV架构Hyper-V可扩展交换机简介SR-IOV物理功能(PF)编写SR-IOV PF微型端口驱动程序概述SR-IOV虚拟功能(VF)编写SR-IOV VF微型端口驱动程序概述NIC交换机管理NIC交换机SR-IOV数据路径相关阅读Single Root I/O虚拟化(SR-IOV)概述https://docs.microsoft.com/en-us/windows-hardwar.
2021-02-27 14:59:42
40
转载 Linux PCI驱动框架分析:(Peripheral Component Interconnect,外部设备互联)
《DPDK 20.05 | rte_pci_bus思维导图 | 第一版》《linux系统下:IO端口,内存,PCI总线 的 读写(I/O)操作》《Linux指令:lspci显示PCI总线设备信息》目录Linux PCI驱动框架分析(一)1. 概述2. PCI Local Bus2.1 PCI总线组成2.2 PCI总线信号定义2.3 PCI事务模型2.4 PCI总线地址空间映射3. PCI Express - PCIe3.1 PCIe体系结构3.2 PCIe
2021-02-27 14:26:21
95
原创 Fig. BPF Performance Tools Book
https://github.com/brendangregg/bpf-perf-tools-book
2021-02-23 12:43:03
26
2
翻译 [中断]/proc/interrupts: Rescheduling Interrupts
https://help.ubuntu.com/community/ReschedulingInterrupts/proc/interruptsIntroductionIf you are using a laptop thenpowertopis a useful tool to help reduce power consumption.powertopexamines system activity such as the reasons for processor wa...
2021-02-23 11:08:17
42
11
原创 the little Redis book
目录About This BookLicenseAbout The AuthorWith Thanks ToLatest VersionIntroductionGetting StartedOn WindowsOn *nix and MacOSXRunning and Connecting to RedisRedis DriversChapter 1 - The BasicsThe Building BlocksDatabasesCommands,
2021-02-23 11:06:20
98
转载 带有LLVM的eBPF组件
目录从C到目标文件深入说明eBPF与LLVM循序渐进从C编译到eBPF程序集组装到ELF目标文件llvm-objdump的人性化输出内联汇编结论此职位作为草稿留了很长时间。它的大部分内容是在2017年12月编写的。我希望它能在今天发布,尽管Cilium指南也涵盖了该功能。eBPF(扩展的Berkeley数据包过滤器)相对于旧BPF版本(对于经典BPF而言,是cBPF)最有用的发展之一就是基于clang和LLVM的后端的可用性,从而可以从C源代码生成eBPF字节码.
2021-02-21 20:52:29
41
3
转载 BPF环形缓冲区
目录BPF Ringbuf和BPF perfbuf内存开销活动订购浪费工作和额外的数据复制性能和适用性给我看看代码!BPF perfbuf:bpf_perf_event_output()BPF ringbuf:bpf_ringbuf_output()BPF ringbuf:保留/提交APIBPF ringbuf:数据通知控制结论现在有一个新的BPF数据结构可用:BPF环形缓冲区。它解决了BPF性能缓冲区(目前已成为从内核向用户空间发送数据的事实上的标准.
2021-02-21 20:41:55
27
转载 使用libbpf-bootstrap构建BPF应用程序
目录为什么选择libbpf-bootstrap?先决条件Libbpf引导概述最小的应用BPF方面用户空间端生成文件引导程序包括:vmlinux.h,libbpf和应用程序头BPF地图只读BPF配置变量BPF环形缓冲区BPF CO-RE结论libbpf-bootstrap脚手架可让您轻松快捷地开始使用自己的BPF应用程序,该脚手架将处理所有寻常的设置步骤,并使您能够直接体验BPF的乐趣并最大程度地减少必要的样板。我们将看看libbpf-boo..
2021-02-21 20:29:14
34
原创 关于英特尔® 以太网服务器适配器中 SR-IOV 的常见问题解答
英特尔数据中心解决方案 关于英特尔® 以太网服务器适配器中 SR-IOV 的常见问题解答关于英特尔® 以太网适配器中单根 I/O 虚拟化(SR-IOV) 的常见问题 (FAQ),您可以在此页面找到相关解答。单击或主题以了解详细信息:哪些英特尔® 以太网适配器和英特尔® 控制器支持 SR-IOV?英特尔® 以太网 800 系列 英特尔® 以太网网络适配器 E810(所有产品 SKU) 英特尔® 以太网网络适配器 X722 系列 英特尔® 以太网网络适配器 X722-DA...
2021-02-15 23:05:12
149
转载 virtio 网络的演化:原始virtio > vhost-net(内核态) > vhost-user(DPDK) > vDPA
纵观virtio网络的发展,控制平面由最原始的virtio到vhost-net协议,再到vhost-user协议,逐步得到了完善与扩充; 数据平面上,从原先集成在QEMU中或内核模块的中,到集成了DPDK数据平面优化技术的vhost-user,最终到使用硬件加速数据平面。在保留virtio这种标准接口的前提下,达到了SR-IOV设备直通的网络性能。目录1.virtio-net驱动与设备:最原始的virtio网络2.vhost-net:处于内核态的后端3.vhost-user:使用DPD.
2021-02-15 22:58:04
62
转载 Linux虚拟化KVM-Qemu分析(九)之virtio设备
目录1. 概述2. 流程分析3. tap创建 -网卡后端设备4. virtio-net创建4.1 数据结构4.2 流程分析4.2.1 class_init4.2.2 instance_init4.2.3 realize参考《Linux虚拟化KVM-Qemu分析(一)》《Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化》《Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)》《Linux虚拟化KVM-Qemu分析(四)之CPU..
2021-02-15 22:20:04
72
转载 Linux虚拟化KVM-Qemu分析(八)之virtio初探
目录概述1. 网卡1.1 网卡工作原理1.2 Linux网卡驱动2. 网卡全虚拟化2.1 全虚拟化方案2.2 弊端3. 网卡半虚拟化3.1 virtio3.2 半虚拟化方案参考《Linux虚拟化KVM-Qemu分析(一)》《Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化》《Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)》《Linux虚拟化KVM-Qemu分析(四)之CPU虚拟化(2)》《Linux虚拟化KVM-.
2021-02-15 22:10:13
102
原创 2021年二月上旬文章导读与高可用链接 | kmap,vmap,ioremap,Containers-LXC,NAT,virtio,RT,tunning(tuned),NUMA,IP
目录文章总览《Linux操作系统实时性分析》《内存管理的另辟蹊径 - 腾讯云虚拟化开源团队为内核引入全新虚拟文件系统(dmemfs)》《刨根问底儿,看我如何处理 Too many open files 错误!》《Linux Containers》《一次解决Linux内核内存泄漏实战全过程》文章总览《Redis为什么要分16个库》https://mp.weixin.qq.com/s/A5jOgFL42hXHkxe299G-sg 《Linux操作系统实时性分析》https.
2021-02-15 20:49:00
33
1
转载 linux内存管理:kmap、vmap、ioremap
目录散列表也是哈希表kmap实现page_address_mappkmap_countpage_address_slot哈希函数kmap函数实现kmap_initkmapkmap_highpage_addressmap_new_virtualset_page_addresskunmapkunmap_high(struct page *page)函数实现vmap实现vmap函数vunmap函数ioremapioremap函数_
2021-02-15 20:42:52
84
1
转载 Linux TCP/IP网络协议栈:IP协议源码分析
目录IP协议简介IP头部IP数据包的发送IP数据包的接收https://mp.weixin.qq.com/s/8WNcTxtD4DBcNtcrR8nz4QIP协议是网络的最重要部分,毫不夸张地说,正是因为有IP协议才有了互联网。而IP协议最重要的是IP地址,IP地址就好像我们的家庭住址一样,用于其他人方便找到我们的位置。当然,这篇文章并不是介绍IP协议的原理,有关IP协议的原理可以参考经典的书籍《TCP/IP协议详解》,而这篇文章主要介绍的是 Linu...
2021-02-15 20:08:00
41
转载 Linux如何处理 Too many open files
目录一、找到源代码二、找到进程级限制 nofile 和 fs.nr_open三、找到系统级限制 fs.nr_open总结一下《刨根问底儿,看我如何处理 Too many open files 错误!》https://mp.weixin.qq.com/s/GBn94vdL4xUL80WYrGdUWQ如果你的项目中支持高并发,或者是测试过比较多的并发连接。那么相信你一定遇到过“Too many open files”这个错误。这个错误的出现其实是正常的,因为每打开一个文件(.
2021-02-15 19:59:31
22
2
原创 红帽Redhat网络功能虚拟化产品指南、规划和配置指南
网络功能虚拟化产品指南 使开源更具包容性 1.了解红帽网络功能虚拟化(NFV) 1.1。NFV的优势 1.2。NFV部署支持的配置 2.软件 2.1。ETSI NFV架构 2.2。NFV ETSI体系结构和组件 2.3。红帽NFV组件 2.4。NFV安装摘要 3. NFV硬件 4. NFV数据平面连接 4.1。快速数据路径选项 5. NFV性能考量 5.1。CPU和NUMA节点 5.1.1。NUMA节点示例 5.1.2。NUMA感知实例 5
2021-02-10 15:23:47
39
1
原创 红帽Redhat产品资料官方文档
目录红帽企业LINUX云平台红帽容器红帽虚拟化红帽云系统管理红帽开发人员红帽存储红帽中间件身份管理硬件认证参考架构迁移工具包退役产品红帽企业LINUX红帽企业Linux 。净 红帽OpenStack平台 红帽开发人员工具集 红帽企业MRG 红帽软件收藏 红帽更新基础架构 实时红帽企业Linux云平台红帽见解红帽容器OpenShift容器平台 红帽容器开发套件 红帽企业Linux原子主机 红帽.
2021-02-10 15:21:27
35
原创 【realtime】红帽 RedHat Linux实时内核配置要点全面分析
CentOS Linux实时性配置要点rtoax2021年2月1. 概要1.1. 实时性补丁补丁地址:CentOS 7 - RealTime for x86_64: RealTime: kernel-rt-doc3.10.0-693.2.2.rt56.623.el7.x86_64:下载3.10.0-1127.rt56.1093.el7.x86_64:下载1.2. 相关链接Product Documentation for Red Hat Enterprise Lin
2021-02-10 14:27:23
113
4
转载 The Linux Trace Toolkit | LTTng Documentation
Last update: 5 August 2020Copyright © 2014-2020The LTTng ProjectThis work is licensed under aCreative Commons Attribution 4.0 International License.https://lttng.org/docs/Welcome!Welcome to theLTTng Documentation!TheLinux Trace Toolkit...
2021-02-06 20:46:10
38
转载 The Real Time Linux and RT Applications | PREEMPT_RT
目录HOWTO: RTOS and RT ApplicationsMemory for Real-time ApplicationsHOWTO build a simple RT applicationHOWTO build a basic cyclic applicationHOWTO build a simple RT application with a locking mechanismHOWTO build a simple RT application with a si
2021-02-06 20:25:40
54
4
转载 sched-deadline.txt
Deadline Task Scheduling ------------------------CONTENTS======== 0. WARNING 1. Overview 2. Scheduling algorithm 2.1 Main algorithm 2.2 Bandwidth reclaiming 3. Scheduling Real-Time Tasks 3.1 Definitions 3.2 Schedulability Ana...
2021-02-06 20:17:04
62
1
翻译 实时Linux内核调度器 | Real-Time Linux Kernel Scheduler
《Real-Time Linux Kernel Scheduler》HOWTOsby Ankita Garg on August 1, 2009Many market sectors, such as financial trading, defense, industry automation and gaming, long have had a need for low latencies and deterministic response time. Traditionally, ...
2021-02-06 19:52:27
128
5
翻译 Introduction to Real-Time Kernels
目录What is a Real-Time Kernel?Evaluation BoardsMicrium’s µC/ProbeTexas Instruments’ EVALBOTSummaryThis article describes how you can get started with learning about the internals of real-time kernels using a commercial grade kernel, running .
2021-02-06 18:02:11
42
1
翻译 使用Red Hat Enterprise Linux的实时内核
运行实时内核并评估其对应用程序的潜力和性能优势是值得的。https://www.redhat.com/sysadmin/real-time-kernel目录什么是实时内核?实时安装RHELWrap up实时内核功能在开源生态系统中已经存在了十多年。同样,红帽企业Linux(RHEL)对实时内核的支持已经使用了几年。但是,许多系统管理员仍然误解了其核心概念和实际操作行为。在本文中,我描述了它的一些关键功能,与标准内核的区别以及快速安装步骤。最初,红帽推出了一种名为“红帽企业M.
2021-02-06 17:52:38
31
3
转载 Linux实时/高性能任务独占CPU的操作
本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。目录工程需求用户态隔离内核态隔离中断内核态线程最佳实践指南参考文献工程需求在一个SMP或者NUMA系统中,CPU的数量大于1。在工程中,我们有时候有一种需求,就是让某个能够独占CPU,这个CPU什么都不做,就只做指定的任务,..
2021-02-06 17:39:18
55
4
转载 Linux进程管理:进程调度之完全公平调度算法
目录完全公平调度算法基本原理完全公平调度的两个时间完全公平调度的两个对象完全公平调度算法实现调度时机Linux 进程调度算法经历了以下几个版本的发展: 基于时间片轮询调度算法。(2.6之前的版本) O(1) 调度算法。(2.6.23之前的版本) 完全公平调度算法。(2.6.23以及之后的版本) 之前我写过一篇分析O(1)调度算法的文章:O(1)调度算法,而这篇主要分析 Linux 现在所使用的完全公平调度算法。分析完全公平调度算法前,...
2021-02-06 17:27:47
56
《A Practical Introduction to Data Structures and Algorithm Analysis》
2018-06-03
中国电信DPDK技术白皮书.pdf
2020-10-25
OpenCV自带视频测试文件vtest.avi
2018-05-04
conf20200210.darkTheme.xml
2020-02-10
pci-express3-device-architecture-optimizations-idf2009-presentation.pdf
2021-02-27
MPI, OpenMP, CUDA, OpenCL, OpenACC,
2018-06-03
Intel_ACPI_Low_Power_S0_Idle.pdf
2021-02-25
极简化的TCP/UDP测试工具-吞吐量
2020-07-22
Virtual Memory and Linux - AlanOtt.pdf
2020-11-10
Aarch64 Kernel Memory Management.pptx
2020-11-08
LKM:Linux Kernel Map(图解Linux内核)PDF,SVG,PNG格式
2020-11-01
The BSD Packet Filter A New Architecture for User-level Packet Capture.pdf
2020-10-30
XDP_DDoS_protecting_osd2017.pdf
2020-10-10
C语言如何从源函数中获取指向它的函数指针的地址
发表于 2020-05-21 最后回复 2020-06-15
Koma_Wong的留言板
发表于 2020-01-02 最后回复 2020-03-08
Linux“实时补丁”导致CPU无法占满运行
2021-02-22
C语言如何将字符串“int”转化为int类型
2019-01-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝