![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IO
小油菜j
这个作者很懒,什么都没留下…
展开
-
(转载)高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少
前言曾几何时我们还在寻求网络编程中C10K问题(有关C10K问题请见文章《The C10K problem(英文在线阅读、英文PDF版下载、中文译文)》)的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说已经远远足够了,但是对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百...转载 2019-02-15 10:10:10 · 149 阅读 · 0 评论 -
IO多路复用之epoll总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:#includ...转载 2019-02-15 10:21:34 · 109 阅读 · 0 评论 -
IO多路复用之poll总结
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数 函数...转载 2019-02-15 10:20:46 · 96 阅读 · 0 评论 -
IO多路复用之select总结
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。...转载 2019-02-15 10:19:52 · 105 阅读 · 0 评论 -
高性能网络编程(六):一文读懂高性能网络编程中的线程模型
1、前言本文接上篇《高性能网络编程(五):一文读懂高性能网络编程中的I/O模型》。随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力。本文(和上篇《高性能网络编程(五):一文读懂高性能网络编程中的I/O模型》)旨在为大家提供有用的高性能网络编程的I/O模型概览以及网络服务进程模型的比较,以揭开设计和实现高性能网络架构的神秘面纱。另外,作者的另一篇《新手入门:目前...转载 2019-02-15 10:15:08 · 661 阅读 · 0 评论 -
高性能网络编程(五):一文读懂高性能网络编程中的I/O模型
高性能网络编程(五):一文读懂高性能网络编程中的I/O模型阅读(12559) | 评论(2)收藏9 淘帖2 赞2JackJiang Lv.9 5 个月前 | |只看大图 1、前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力。本文(和下篇《高性能网络编程(六):一文读懂高性能网络编程中的线程模型》)旨在为大家提供有用的高性能网络编...转载 2019-02-15 10:14:23 · 332 阅读 · 0 评论 -
高性能网络编程(四):从C10K到C10M高性能网络应用的理论探索
1、前言本系列的上篇文章中,我们简要探讨了C10M问题的由来以及基本的技术实现思路(详见《高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了》),本文内容由京东的资深架构师闫国旗分享,以分享者多年的实践和总结,进一步探讨解决C10M问题的理论可行性。对于中小型应用场景来说,实现单机10万、单机百万、单机千万的负载能力,对团队的运营成本以及产品投入其实差别不是太大。但对于大量、海量...转载 2019-02-15 10:13:20 · 427 阅读 · 0 评论 -
高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了
1、前言在本系列文章的上篇中我们回顾了过云的10年里,高性能网络编程领域著名的C10K问题及其成功的解决方案(上篇请见:《高性能网络编程(二):上一个10年,著名的C10K并发连接问题》)。本文将讨论单机服务器实现C10M(即单机千万并发连接)的可能性及其思路。截至目前,40gpbs、32-cores、256G RAM的X86服务器在Newegg网站上的报价是几千美元。实际上以这样的硬件配置来...转载 2019-02-15 10:12:35 · 241 阅读 · 0 评论 -
高性能网络编程(二):上一个10年,著名的C10K并发连接问题
1、前言 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解。“C10K”概念最早由Dan Kegel发布于其个人站点,即出自其经典的《The C10K problem (英文PDF版、中文译文)》一文。正如你所料,过去的10年里,高性能网络编程技术领域里经过众多开发者的努力,已很好地解决了C10K问题,大家已开始关注并着手解决...转载 2019-02-15 10:11:28 · 122 阅读 · 0 评论 -
select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝...转载 2019-02-15 10:22:16 · 87 阅读 · 0 评论