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

网站退出率是什么意思部队内网网站建设方案

网站退出率是什么意思,部队内网网站建设方案,电子商务网站建设实验原理,购物商城开发优质博文#xff1a;IT-BLOG-CN 一、单线程的优缺点 对于一个请求操作Redis主要做3件事情#xff1a;从客户端读取数据/解析、执行Redis命令、回写数据给客户端。所以主线程其实就是把所有操作的这3件事情串行一起执行#xff0c;因为是基于内存#xff0c;所以执行速度非…优质博文IT-BLOG-CN 一、单线程的优缺点 对于一个请求操作Redis主要做3件事情从客户端读取数据/解析、执行Redis命令、回写数据给客户端。所以主线程其实就是把所有操作的这3件事情串行一起执行因为是基于内存所以执行速度非常快。 优点缺点 【1】优点不存在锁的竞争问题和避免线程间CPU的切换。 【2】缺点单线程无法利用多CPU和串行操作某个操作“出问题”会“阻塞”后续操作。 Redis6.0之前为什么一直不使用多线程 使用Redis时几乎不存在CPU成为瓶颈的情况Redis主要受限于内存和网络。例如在一个普通的Linux系统上Redis通过使用pipelining每秒可以处理100W个请求如果应该程序主要使用O(N)或O(log(N))的命令它几乎不会占用太多的CPU。如果要用到多核CPU可以搭建多个Redis实例来解决。 为什么说Redis的瓶颈不在CPU Redis绝大部分操作是基于内存的而且是存KVkey-value操作命令执行的速度非常快。我们可以这么理解Redis的数据存储在一个大的HashMap中而HashMap的优势就是查找和写入的时间复杂度都是O(1)Redis内部采用这种结构存储数据就奠定了Redis高性能的基础。 二、Redis 的多线程 Redis基于内存操作内存的响应时长大约为100纳秒单线程的Redis处理数据的极限是80,000到100,000 QPS对于80%的公司来说单线程的Redis已经足够使用了。 因为网络I/O在Redis执行期间占用了大部分CPU时间所以把网络I/O部分单独抽离出来做成多线程的方式。这里所说的多线程其实就是将Redis单线程中做的这两件事情“从客户端读取数据、回写数据给客户端”也可以称为网络I/O处理成多线程的方式但是“执行Redis命令”还是在主线程中串行执行这个逻辑保持不变。 主线程和多个I/O线程都同时处理图中的“队列”是不是会存在锁竞争的关系尼这里有个巧妙的设计就是当epoll获取socket链接时会将该事件先全部扔进队列中比如扔了N个事件这时主线程就会处于忙碌状态。然后多个I/O线程开始去并行进行网络I/O,并对数据进行协议解析当队列全部处理完毕后主线程会对队列中请求串行“执行Redis命令”然后清空该队列。所以整个执行流程总结下来主线程执行请求入队列 - I/O线程并行进行网络读 - 主线程串行执行Redis命令 - I/O线程并行进行网络写 -主线程清空队列并接收下一批请求。 Redis 6.0的多线程是禁用的默认使用是主线程。官方建议只在机器至少有4个内核时才启用多线程模型且至少留下一个备用内核。如果需要开启多线程需修改redis.conf配置文件 io-threads-do-reads yes开启多线程后还需要设置线程数否则是不生效的。同样修改redis.conf配置文件 io-threads 3Redis官方建议只在机器至少有4个内核时才启用多线程模型且至少留下一个备用内核。4核的机器建议设置为2或3个线程8核的建议设置为6个线程线程数一定要小于机器核数。还需要注意的是线程数并不是越大越好官方认为超过了8个基本就没什么意义了。 三、Redis6 多线程原理解析 近年来底层网络硬件性能越来越好Redis的性能瓶颈逐渐体现在网络I/O的读写上单个线程处理网络I/O读写的速度跟不上底层网络硬件执行的速度。 Redis6.0多线程是把主线程处理网络IO和协议解析这两件事给了一组独立的线程处理使得多个socket读写可以并⾏化但Redis命令还是主线程串⾏执⾏。 主要流程如下 【1】主线程负责接收并建立多个连接请求获取socket后放入全局等待处理队列 【2】主线程处理完这些事件之后通过RRRound Robin轮询将可读socket分配给这些IO线程 【3】主线程阻塞等待IO线程完成命令的读取、解析 继续使⽤单线程执⾏读写命令不需要为了保证Lua脚本、事务、等开发多线程安全机制实现更简单。 【4】主线程执⾏IO线程读取和解析出来的Redis请求命令并将结果写到输出缓冲区 【5】主线程阻塞等待IO线程将命令执⾏结果写回socket客户端 【6】主线程执行所有命令并清空整个等待队列等待客户端后续的请求队列 三、性能对比 压测配置: Redis Server: 阿里云Ubuntu 18.048 CPU 2.5 GHZ, 8G内存主机型号ecs.ic5.2xlarge Redis Benchmark Client: 阿里云Ubuntu 18.048 2.5 GHZ CPU, 8G内存主机型号ecs.ic5.2xlarge 压测命令: redis-benchmark -h 192.168.0.49 -a foobared -t set,get -n 1000000 -r 100000000 --threads 4 -d ${datasize} -c 256 从上面可以看到GET/SET命令在4线程IO时性能相比单线程是几乎是翻倍了。另外这些数据只是为了简单验证多线程IO是否真正带来性能优化并没有针对严谨的延时控制和不同并发的场景进行压测。数据仅供验证参考而不能作为线上指标且只是目前的unstble分支的性能不排除后续发布的正式版本的性能会更好。
http://www.yayakq.cn/news/1469/

相关文章:

  • 用插件做网站成都旅游必去景点有哪些
  • 小蚁人网站建设网站后台上传图片无法显示
  • 贵州网站建设系统wordpress 内网访问
  • 甘肃做网站哪家好策划推广方案
  • 设计网站的优缺点分析比较好的开源cms系统
  • 做网站注意的问题广州建站业务公司
  • 猪八戒 网站开发支付织梦cms下载
  • 做h5动画的素材网站网络规划设计师培训视频教程
  • 现在网站一般都是什么语言做的做网站ui设计多少钱
  • 长春网站制作软件哪个网站可以做条形码
  • 怎么给网站做超链接眉山市住房城乡建设局网站
  • 学网站建设宁波品牌网站制作哪家好
  • 做互联网产品和运营必备的网站南京高端网站建设
  • 江西锦宇建设集团有限公司网站小程序如何推广
  • 在线制作手机网站mukioplayerwp wordpress
  • wordpress设置多站点微信链接制作软件
  • 网站建设和网站设计一样吗甘肃省住房和城乡建设厅网站职称证查询
  • 鞍山网站制作一般多少钱wordpress多国语言设置
  • 互联网网站解决方案私密浏览器免费版图片
  • 网站代理备案步骤网站设计公司杭州
  • wordpress 网站积分打赏找做牙工作上哪个网站
  • 网站论坛建设网络营销资格证网络营销证书
  • 世纪佳缘网站开发公司建设部二级结构工程师注销网站
  • 中国乐清做网站需要找人优化吗
  • 网站会员注册系统源码北京智能模板建站
  • 山西做网站运营的公司网站没更新
  • 学ps做兼职的网站有哪些做网站设计赚钱吗
  • 美食网站开发步骤如何百度搜索到自己的网站
  • iis 多网站安全设置淘宝详情页模板
  • asp.net搭建网站搭建棋牌工具