当前位置: 首页 > news >正文

宁波市北仑区建设局网站网站被人恶意刷流量

宁波市北仑区建设局网站,网站被人恶意刷流量,山网站建设,360网站建设基本情况文章目录 概述为何选择单线程主要性能瓶颈多线程特性和IO多路复用概述Unix网络编程中的五种IO模型Blocking IO-阻塞IONoneBlocking IO-非阻塞IOIO multiplexing-IO多路复用signal driven IO-信号驱动IOasynchronous IO-异步IO 场景#xff1a;引出epoll总结 开启Redis多线程其… 文章目录 概述为何选择单线程主要性能瓶颈多线程特性和IO多路复用概述Unix网络编程中的五种IO模型Blocking IO-阻塞IONoneBlocking IO-非阻塞IOIO multiplexing-IO多路复用signal driven IO-信号驱动IOasynchronous IO-异步IO 场景引出epoll总结 开启Redis多线程其他 概述 为何选择单线程 Redis4.0之前 使用单线程模型是 Redis 的开发和维护更简单因为单线程模型方便开发和调试即使使用单线程模型也并发的处理多客户端的请求主要使用的是IO多路复用和非阻塞IO对于Redis系统来说主要的性能瓶颈是内存或者网络带宽而并非 CPU。 使用惰性删除可以有效的避免 Redis 卡顿的问题 主要性能瓶颈 Redis性能瓶颈主要为网络IO 多线程特性和IO多路复用概述 主线程和IO线程协作完成请求处理四个阶段 Unix网络编程中的五种IO模型 Blocking IO-阻塞IO NoneBlocking IO-非阻塞IO IO multiplexing-IO多路复用 Linux世界一切皆文件 文件描述符、简称FD句柄FileDescriptor IO多路复用同步的IO模型实现一个线程监视多个文件句柄一旦某个文件包柄就绪就能够通知到对应应用程序进行相应的读写操作没有文件包柄就绪时就会阳塞应用程序从而释放CPU资源 概念 IO :网络 IO尤其在操作系统层面指数据在内核态和用户态之间的读写操作多路:多个客户端连接(连接就是套接字描述符即 socket 或者 channel)复用:复用一个或几个线程。IO多路复用也就是说一个或一组线程处理多个TCP连接,使用单进程就能够实现同时处理多个客户端的连接无需创建或者维护过多的进程/线程总结一个服务端进程可以同时处理多个套接字描述符。实现IO多路复用的模型有3种:可以分select-poll-epoll三个阶段来描述。 signal driven IO-信号驱动IO asynchronous IO-异步IO 场景引出epoll 模拟一个tcp服务器处理30个客户socket。 假设你是一个监考老师让30个学生解答一道竞赛考题然后负责验收学生答卷你有下面几个选择 第一种选择(轮询)按顺序逐个验收先验收A然后是B之后是C、D。。。这中间如果有一个学生卡住全班都会被耽误,你用循环挨个处理socket根本不具有并发能力。 第二种选择(来一个new一个1对1服务)你创建30个分身线程每个分身线程检查一个学生的答案是否正确。 这种类似于为每一个用户创建一个进程或者线程处理连接。 第三种选择(响应式处理1对多服务)你站在讲台上等谁解答完谁举手。这时C、D举手表示他们解答问题完毕你下去依次检查C、D的答案然后继续回到讲台上等。此时E、A又举手然后去处理E和A。。。这种就是IO复用模型。Linux下的select、poll和epoll就是干这个的 将用户socket对应的文件描述符(FileDescriptor)注册进epoll然后epoll帮你监听哪些socket上有消息到达这样就避免了大量的无用操作。此时的socket应该采用非阻塞模式。这样整个过程只在调用select、poll、epoll这些调用的时候才会阻塞收发客户消息是不会阻塞的整个进程或者线程就被充分利用起来这就是事件驱动所谓的reactor反应模式。 在单个线程通过记录跟踪每一个Sockek(I/O流)的状态来同时管理多个I/O流. 一个服务端进程可以同时处理多个套接字描述符。目的是尽量多的提高服务器的吞吐能力。nginx使用epoll接收请求ngnix会有很多链接进来 epoll会把他们都监视起来然后像拨开关一样谁有数据就拨向谁然后调用相应的代码处理。redis类似同理这就是IO多路复用原理有请求就响应没请求不打扰。 总结 主线程和IO线程协作流程 I/O 的读和写本身是堵塞的比如当 socket 中有数据时Redis 会通过调用先将数据从内核态空间拷贝到用户态空间再交给 Redis 调用而这个拷贝的过程就是阻塞的当数据量越大时拷贝所需要的时间就越多而这些操作都是基于单线程完成的。 从Redis6开始就新增了多线程的功能来提高 I/O 的读写性能他的主要实现思路是将主线程的 IO 读写任务拆分给一组独立的线程去执行这样就可以使多个 socket 的读写可以并行化了采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求尽量减少网络IO的时间消耗将最耗时的Socket的读取、请求解析、写入单独外包出去剩下的命令执行仍然由主线程串行执行并和内存的数据交互。 网络IO操作就变成多线程化了其他核心部分仍然是线程安全的 开启Redis多线程 Redis6.0及7后多线程机制默认是关闭的如果需要使用多线程功能需要在redis.conf中完成两个设置 设置io-thread-do-reads配置项为yes表示启动多线程。设置线程个数。关于线程数的设置官方的建议是如果为 4 核的 CPU建议线程数设置为 2 或 3如果为 8 核 CPU 建议线程数设置为 6线程数一定要小于机器核数线程数并不是越大越好。 其他 对于大数据的 key 删除还是卡顿厉害因此在 Redis 4.0 引入了多线程unlink key/flushall async 等命令主要用于 Redis 数据的异步删除而在 Redis6/7中引入了 I/O 多线程的读写这样就可以更加高效的处理更多的任务了Redis 只是将 I/O 读写变成了多线程而命令的执行依旧是由主线程串行执行的因此在多线程下操作 Redis 不会出现线程安全的问题。
http://www.w-s-a.com/news/875726/

相关文章:

  • 网站开发不足之处茶叶seo网站推广与优化方案
  • 响应式网站建设系统网站优化怎么做 有什么技巧
  • 班级网站做哪些方面wordpress标签 扩展
  • 如何在电商上购物网站Wordpress 域名授权插件
  • 网站建设后台怎么弄昆明如何做好关键词推广
  • 自己怎么做个网站优酷视频网站开发
  • 2015做网站前景电子商务营销的发展现状
  • 官方网站建设情况说明电子商务网站开发的形式有
  • 网站建设玖金手指排名11专业建站公司建站系统
  • 全球排名前十网站百度网站官网网址
  • 商家在携程旅游网站怎样做宣传做网站公司苏州
  • 芜湖做网站都有哪些广州音乐制作公司
  • 青岛好的网站制作推广注册公司流程步骤
  • 怎么制作营销网站模板wordpress苗木模板
  • 手机网站样例wordpress 排序
  • 济南网站建设手机网站开发人员需要去做原型吗
  • 动易网站模板下载微信支付 wordpress
  • 学校建设外文网站情况阿里云 建设网站怎么样
  • 网站建设与网页设计制作深圳网站建设首选上榜网络
  • 网站浏览成交指标计算机应用是做什么的
  • 企业网站建设的要求wordpress 404页面模板
  • 公司怎么注册官方网站wordpress花园网站
  • 一般网站的建设步骤有哪些企业网站建设应该注意什么事项问题
  • 枣庄市建设局网站建设工程合同交底的内容包括
  • 全国十大跨境电商排名seo优化入门教程
  • 福安网站开发网站内容建设要求age06
  • 网站开发制作公司罗湖在线
  • 做网站银川潍坊网络科技有限公司
  • 南宁企业网站建站模板盐田高端网站建设
  • 深圳市建设局网站张局北京档案馆网站建设