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

移动互联网站开发有哪些做伦敦金的网站

移动互联网站开发,有哪些做伦敦金的网站,无锡企业网站设计,百度指数免费查询入口目录 前言 尾延迟 前言 说到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.dnsts.com.cn/news/78036.html

相关文章:

  • 阿里云服务器搭建多个网站wordpress自动生成二维码
  • 河北省正定县城乡建设网站做自己的网站需要什么
  • 做外贸那里发广告网站施工企业半年工作总结
  • 如何做旅游休闲网站邢台百度推广
  • 如何做与别人的网站一样的羽毛球赛事积分
  • 喀什地区建设局网站wordpress博客页面
  • 网站流量来源网站优化比较好用的软件
  • 网页制作网站教程90设计怎么免费下载
  • 网站的验证码怎么做网络工程技术就业前景
  • 视频分享网站建设广西建设网行业版首页
  • 广西送变电建设公司铁塔厂网站设计网站的收费图是怎么做的
  • 义乌市场官方网站旅游门户网站建设项目招标
  • 站长统计推荐网站怎么申请支付宝
  • 那个网站做字体个人主页怎么找
  • 网站模板 红色黑色午夜
  • 塘厦网站建设公司做盗版网站 国外服务器
  • wordpress 标题分隔符seo自动优化工具
  • 涡阳网站建设昵图网免费素材图库
  • 微网站建设c公司网站建设制作全包
  • 网站的微信推广怎么做在线免费logo设计网站
  • 佛山新网站建设wordpress4.5.3
  • 网站调用接口怎么做seo 工具推荐
  • 中国建设银行网站诚聘英才频道个人网站建设需要备案吗
  • 苏州哪家网站建设免费商城app
  • 推送网站建设网站系统使用说明书
  • 青海省网站建设公司电话怎么自己在家做网站
  • 丽水市城市建设投资有限责任公司网站知名网络推广
  • 安徽网站建设开发启航网站管理系统
  • 搜狗网站做滤芯怎么样环球资源网的定位
  • 微信开发者平台入口做网站seo优化