一、Redis为什么这么快
因为Redis采取了epoll模型,IO多路复用。同步非阻塞。
二、什么是epoll
介绍epoll之前必须要先介绍下select和poll。明白select和poll的缺点后才能知道为什么epoll这么快。
三、什么是select
1、源码
2、源码解析
2025年07月13日
一、Redis为什么这么快
因为Redis采取了epoll模型,IO多路复用。同步非阻塞。
介绍epoll之前必须要先介绍下select和poll。明白select和poll的缺点后才能知道为什么epoll这么快。
1、源码
2、源码解析
2025年07月13日
1.epoll简介
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
epoll可以理解为event poll,它是一种事件驱动的I/O模型,可以用来替代传统的select和poll模型。epoll的优势在于它可以同时处理大量的文件描述符,而且不会随着文件描述符数量的增加而降低效率。
2025年07月13日
近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡。一共fork了20个Server进程,在请求负载中等的时候,有三四个Server进程呈现出比较高的CPU利用率,其余的Server进程的CPU利用率都是非常低。
中断,软中断都是均衡的,网卡RSS和CPU之间进行了bind之后依然如故,既然系统层面查不出个所以然,只能从服务的角度来查了。
自上而下的排查首先就想到了strace,没想到一下子就暴露了原形:
2025年07月13日
IO中的I就是input,O就是output,IO模型即输入输出模型,而比较常听说的便是磁盘IO,网络IO。
2025年07月13日
目前常用的IO复用模型主要有三种:select/poll/epoll
首先这三种都是实现IO多路复用的方式;
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,他就通知该进程。与多线程技术相比,IO多路复用最大的优势是系统开销小,系统不必创建核维护这些线程、进程,从而大大的减少系统的开销。
1.select模型
2025年07月13日
首先,我们要了解IO复用模型之前,先要了解在Linux内核中socket事件机制在内核底层是基于什么机制实现的,它是如何工作的,其次,当我们对socket事件机制有了一个基本认知之后,那么我们就需要思考到底什么是IO复用,基于socket事件机制的IO复用是怎么实现的,然后我们才来了解IO复用具体的实现技术,透过本质看select/poll/epoll的技术优化,逐渐去理解其中是为了解决什么问题而出现的,最后本文将围绕上述思维导图列出的知识点进行分享,
2025年07月13日
Linux 服务器处理网络请求有三种机制,select、poll、epoll,本文打算深入学习下其实现原理。