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

网站建设终稿确认书网站意义学校

网站建设终稿确认书,网站意义学校,自己如何优化网站排名,互联网服务平台12123目录 前言 尾延迟 前言 说到redis 性能优化#xff0c;优化的目的是什么#xff1f;提高响应#xff0c;减少延迟。就要关注两点#xff0c;一是尾延迟#xff0c;二是Redis 的基线性能。只有指标#xff0c;我们的优化#xff0c;才有意义#xff0c;才能做监控以及…目录 前言 尾延迟 前言 说到redis 性能优化优化的目的是什么提高响应减少延迟。就要关注两点一是尾延迟二是Redis 的基线性能。只有指标我们的优化才有意义才能做监控以及报警。这些指标需要借助一定工具进行压力测试高于这个值就说明需要优化了这些值不是绝对的不同的服务器配置都会有一些变化下面我将介绍这两点。 尾延迟 不同公司不同业务有不同的要求。比如有些公司要求redis 的请求 99% 的 GET 请求要小于400微妙PUT 请求要小于500微妙。99% 是什么呢比如说我们有1000个请求假设按请求延迟从小到大排序后第 991 个请求的延迟实测值是 1ms而前 990 个请求的延迟都小于 1ms所以这里 99% 尾延迟就是 1ms。这就是尾延迟我们必须要把前991个请求的延迟时间在我们的要求范围内。 对于这个问题我们该怎么优化呢可以从下面这几个方面考虑 降低操作命令的复杂度 同时关闭RDB 和 AOF 一个 Redis 实例对应绑一个物理核 第1点有点难操作命令复杂度其实与业务有关但是也可以考虑用复杂度低的操作这个看业务 第2点根据业务和架构如果redis 不是主从也不是集群以及这些数据不需要实例话那么可以关闭RDB和AOF的 第3点我只想稍微解释下需要大家对cpu 的结构有一定的理解我从网上找了一个cpu架构图。 上图中第一个L3 cache 代表第一个cpu第二哥 L3 cache 代表第二个cpu。每个cpu 都有两个物理核。 上面是多cpu 架构在多cpu架构上应用程序可以在不同的处理器上运行。也就是说Redis 可以现在第一个cpu 上运行一段时间然后在被调度到第二个cpu 运行。Redis 现在第一个cpu 上运行并且把数据保持到了L1,L2 ,L3 cache。然后又被调度到第二个cpu上运行此时在访问数据就会去第一个cpu 的 L1,L2 ,L3 cache上的数据这种属于远程远端内存访问。 在一个 CPU 核上运行时应用程序需要记录自身使用的软硬件资源信息例如栈指针、CPU 核的寄存器值等我们把这些信息称为运行时信息。同时应用程序访问最频繁的指令和数据还会被缓存到 L1、L2 缓存上以便提升执行速度。 但是在多核 CPU 的场景下一旦应用程序需要在一个新的 CPU 核上运行那么运行时信息就需要重新加载到新的 CPU 核上。而且新的 CPU 核的 L1、L2 缓存也需要重新加载数据和指令这会导致程序的运行时间增加。 这个优化点不是一股脑的就去优化我们仔细检测 Redis 实例运行时的服务器 CPU 的状态指标值如果redis CPU 的 context switch 次数比较多,就需要优化。 context switch 是指线程的上下文切换这里的上下文就是线程的运行时信息。在 CPU 多核的环境中一个线程先在一个 CPU 核上运行之后又切换到另一个 CPU 核上运行这时就会发生 context switch。 当 context switch 发生后Redis 主线程的运行时信息需要被重新加载到另一个 CPU 核上而且此时另一个 CPU 核上的 L1、L2 缓存中并没有 Redis 实例之前运行时频繁访问的指令和数据所以这些指令和数据都需要重新从 L3 缓存甚至是内存中加载。这个重新加载的过程是需要花费一定时间的。而且Redis 实例需要等待这个重新加载的过程完成后才能开始处理请求所以这也会导致一些请求的处理时间增加。 在linux 系统下可以用下面命令查看程序的context switch: cswch 表示自愿的上下文切换进程运行时由于系统资源不足如IO,内存等原因不得不进行切换。 nvcswch 表示非自愿的上下文切换比如时间片用完系统调度让其他任务运行或者竞争CPU的时候也会发生。 cswch/s 表示每秒上下文切换次数。 那么怎的绑定呢可以用 taskset 命令命令如下 taskset -c 0 ./redis-server 就把 Redis 实例绑在了 0 号核上其中“-c”选项用于设置要绑定的核编号。 我们在《redis 为什么会阻塞》讲过redis 不仅有对redis 主线程关键路径上的操作还有子线程aof 重写生成rdb 操作。主线程和子线程都会资源竞争,在aof 重写等情况下主线程会被阻塞为了缓解这么状况应该把cpu物理核的所有核都绑定上。 我们用lscpu 查看cpu 所有的逻辑核 lscpu ​ Architecture: x86_64 ... NUMA node0 CPU(s): 0-5,12-17 NUMA node1 CPU(s): 6-11,18-23 ... 上面表示的一个服务器有两个cpu 分别是node0,node1 。 每个cpu 是6个物理核每个物理核又有两个逻辑核总共24个逻辑核。它的编号规则是先编号每个物理核的第一个逻辑核在编号第二个物理核的所有逻辑核 对于node0 来说 0-5 的意思是 0 第一个物理核的第一个逻辑核 1 第二个物理核的第一个逻辑核2 第三个物理核的第一个逻辑核3 第四个物理核的第一个逻辑核4 第五个物理核的第一个逻辑核5 第六个物理核的第一个逻辑核 对于node0 来说 12-17 的意思是 12 第一个物理核的第二个逻辑核13 第二个物理核的第二个逻辑核14 第三个物理核的第二个逻辑核15 第四个物理核的第二个逻辑核16 第五个物理核的第二个逻辑核17 第六个物理核的第二个逻辑核 那么如我我们要绑定cpu 的第一个物理核上综上所述可以这么写 taskset -c 0,12 ./redis-server 还可以进一步优化把子进程和后台线程绑到不同的 CPU 核上。对于Redis 6.0 以上的版本可以通过配置 (redis.conf) io-threads-affinity 1,13   //绑定到第一个cpu第二个物理核上 对于 Redis 6.0 以下可以修改源码现在大家用的都是高版本对于修改源码不讲解了大家用的也不会太多而且必须对源码有很深的理解。 篇幅比较长下基线性能测试放到下一篇了。
http://www.w-s-a.com/news/154602/

相关文章:

  • 3小时网站建设平台专业制作教学课件
  • 曲阜网站建设百度开户现货黄金什么网站可以做直播
  • 比较好的企业建站平台小程序开发外包该注意些什么
  • 建行官网官网网站吗二次元风格wordpress模板
  • 怎样开通自己的网站网址导航哪个主页最好
  • 大良o2o网站建设详情页设计说明怎么写
  • 您与此网站之间建立的连接不安全汽车cms系统是什么意思
  • 有没有做logo的网站企业网站的内容营销
  • 哈尔滨做企业网站怎么做网站自动响应
  • 网站建设硬件和软件技术环境配置签约做网站模板
  • 教育网站建设的素材手机app制作流程
  • 免费行情软件网站大全下载网站备案查询
  • flex网站模板wordpress实时预览
  • 建设银行网站模板为什么企业要建设自己的企业文化
  • 网站建设必知免费手机网站建站系统
  • ssh可以做wap网站么嘉兴seo排名
  • 站内优化包括哪些帝国做企业网站
  • 做网站seo赚钱吗网络维护和故障维修
  • 企业网站可以自己做摄影网站开发背景怎么写
  • 网站百度指数seo最好的工具
  • 宝安专业网站建设推荐设计感强的网站
  • 网站建设 6万元北京知名的品牌设计公司
  • 网站建设的总体需求是什么vmware 下wordpress
  • 光谷网站建设请检查网络
  • 申请建设网站的报告书商务网站开发课程体会
  • 网站开发实训总结致谢群晖wordpress设置
  • 关于酒店网站建设的摘要天津市建设工程信息网官网首页
  • 网站alexa排名查询手机网站制作器
  • 建设小辣猫的网站电子毕业设计网站建设
  • 询广西南宁网站运营礼品定制