CPU架构对redis性能的影响分析(1)

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

访问速度

  1. L1>L2>L3>内存。

权限

  1. L1和L2为每个核私有(每一个物理核下面的逻辑核共享L1和L2)

  2. L3缓存为多核共享

访问顺序

  1. CPU访问时先从L1和L2缓存读取数据,没有会去L3缓存访问。

  2. 当前核频繁执行的指令和数据会被存储在L1和L2缓存中,如果cpu每次执行都能从L1,L2缓存中读到数据,程序的性能会非常好,应该尽量提高L1和L2的缓存命中率。

context switch

线程在多个CPU之间轮换叫做context switch,在多核环境下,如果发生context switch:

  1. Redis实例线程的运行环境从原有A核移动到了新的B核,那么首先上下文信息需要重新copy到新核。

  2. 同时原有的L1和L2缓存的数据也失效了(私有),需要重新加载,这会影响程序的性能。【降低了L1,L2的命中率】

1.2 对redis的影响


Redis主操作虽然是单线程,自己不做线程调度,但是CPU本身可能会把这个主线程调度到不同的核上面,最终发生context switch,可以通过对redis实例进行绑核来解决这个问题,最终redis实例强制运行在一个cpu核上,从而彻底避免了context switch。

绑核产生的问题

redis实例除了主线程外还有其他额外的后台线程,子线程,如果设置了绑核,把redis实例榜单到了特定的核,这会导致子线程和主线程竞争同一个核,子线程有可能会导致主线程阻塞,最终也会影响redis的性能。

解决竞争

如果对redis实例绑核,有两个方法可以降低主子线程cpu的竞争

  1. redis实例和物理核绑定一个物理核有多个逻辑核,这样子线程和主线程共享多个逻辑核,一定程度上减少竞争。

  2. 修改redis源码,将子线程绑定到其他核。

二、NUMA CPU

==========

2.1 UMA(SMP)架构VS NUMA 架构


单核或者多核计算机上的 CPU 计算机中的所有资源都是共享的,这种架构被称作对称多处理器架构(Symmetric Multi-Processor、SMP),或者称为一致存储器访问结构(Uniform Memory Access、UMA)。

SMP随着核数量的增加,总线等会成为瓶颈。所有引入了多个CPU(多CPU Socket),NUMA(NON Uniform Memory Access)架构,NUMA节点包含独立的物理CPU和内存,CPU Socket访问本地内存和远程内存的开销是不一样的。

CPU架构对redis性能的影响分析

2.2 对redis的影响


线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

一线互联网P7面试集锦+各种大厂面试集锦

学习笔记以及面试真题解析

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值