场景:mac 下导入的 ‘select’ 包 import select,然后在 主函数 中创建的 epoll 对象 epl = select.epoll(),运行报错如下 python官方文档介绍 答案:仅仅支持Linux2.5.44或更高版本。 参考: https://blog.csdn.net ...
分类:
其他好文 时间:
2019-09-25 00:54:00
阅读次数:
148
linux中的计划任务,最小的单位只能到分钟级别,如有业务在秒级单位的计划,crontab将无法完成。而swoole_timer是基于timerfd+epoll实现的异步毫秒定时器,为我们实际提示了很好的解决方案。 一次性定时器 效果: 周期性定时器 ...
分类:
其他好文 时间:
2019-09-19 14:33:08
阅读次数:
87
#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/ ...
分类:
其他好文 时间:
2019-09-17 09:40:59
阅读次数:
107
写在前面 epoll是开发linux高性能服务器的必备技术至,epoll本质,是服务端程序员的必须掌握的知识。 七、epoll的原理和流程 本节会以示例和图表来讲解epoll的原理和流程。 创建epoll对象 如下图所示,当某个进程调用epoll_create方法时,内核会创建一个eventpoll ...
分类:
其他好文 时间:
2019-09-15 10:59:43
阅读次数:
80
Redis架构 1.1.问题 redis是单线程,单实例,为什么并发那么多,依旧很快呢? 回答:因为调用了系统内核的epoll 1.2.Linux的早期版本 Linux有Linux kernal,我们的客户端,进行连接,首先到达的是Linux kernal,在Linux的早期版本,只有read和wr ...
分类:
其他好文 时间:
2019-09-13 01:49:52
阅读次数:
120
前言 早期操作系统通常将进程中可创建的线程数限制在一个较低的阈值,大约几百个。因此, 操作系统会提供一些高效的方法来实现多路IO,例如Unix的select和poll。现代操作系统中,线程数已经得到了极大的提升,如NPTL线程软件包可支持数十万的线程。 I/O多路复用 select select 允 ...
分类:
其他好文 时间:
2019-09-09 14:41:09
阅读次数:
72
1、引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。 本文作者的另两 ...
分类:
Web程序 时间:
2019-09-07 22:09:45
阅读次数:
118
【二、Redis基本命令和五大数据结构】 redis的基础知识和命令 redis 是一个单进程(包装epoll函数来对读写事件进行相应) 默认有16个数据库,初始使用的数据库为0号库 默认端口为6379 select :切换数据库 dbsize:查看当前库的key的个数 flushdb:清空当前库 ...
分类:
其他好文 时间:
2019-09-06 15:48:16
阅读次数:
131
1、可以高并发连接 官方测试Nginx能够支撑5万并发连接,实际生产环境中可以支撑2~4万并发连接数。 原因,主要是Nginx使用了最新的epoll(Linux2.6内核)和kqueue(freeBSD)网路I/O模型,而Apache使用的是传统的Select模型,其比较稳定的Prefork模式为多 ...
分类:
其他好文 时间:
2019-09-06 12:31:56
阅读次数:
97
Redis 单线程高性能,它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。 1.Redis数据结构及简单操作指令 Stri ...
分类:
其他好文 时间:
2019-09-01 18:35:28
阅读次数:
108