上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: LALB全称Locality-aware load balancing,是一个能把请求及时、自动地送到延时最低的下游的负载均衡算法,特别适合混合部署环境。 LALB可以解决的问题: 下游的机器配置不同,访问延时不同,轮询和随机分流效果不佳。 下游服务和离线服务或其他服务混部,性能难以预测。 自动地把 阅读全文
posted @ 2023-02-05 12:16 misaka-mikoto 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1.连接独占线程或进程 在这个模型中,线程/进程处理来自绑定连接的消息,在连接断开前不退也不做其他事情。当连接数逐渐增多时,线程/进程占用的资源和上下文切换成本会越来越大,性能很差,这就是C10K问题的来源。这种方法常见于早期的web server,现在很少使用。 2.单线程reactor 以lib 阅读全文
posted @ 2023-02-04 16:44 misaka-mikoto 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 我们都知道多核编程常用锁避免多个线程在修改同一个数据时产生race condition。当锁成为性能瓶颈时,我们又总想试着绕开它,而不可避免地接触了原子指令。但在实践中,用原子指令写出正确的代码是一件非常困难的事,琢磨不透的race condition、ABA problem、memory fenc 阅读全文
posted @ 2023-02-04 15:49 misaka-mikoto 阅读(300) 评论(0) 推荐(0) 编辑
摘要: Relaxed ordering Typical use for relaxed memory ordering is incrementing counters, such as the reference counters of std::shared_ptr, since this only 阅读全文
posted @ 2023-02-03 11:34 misaka-mikoto 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 在学习数据异步或同步删除之前,你首先需要知道,删除操作实际上是包括了两步子操作。 子操作一:将被淘汰的键值对从哈希表中去除,这里的哈希表既可能是设置了过期 key 的哈希表,也可能是全局哈希表。 子操作二:释放被淘汰键值对所占用的内存空间。 也就是说,如果这两个子操作一起做,那么就是同步删除;如果只 阅读全文
posted @ 2023-01-30 11:37 misaka-mikoto 阅读(348) 评论(0) 推荐(0) 编辑
摘要: Redis server 一旦和一个客户端建立连接后,就会在事件驱动框架中注册可读事件,这就对应了客户端的命令请求。而对于整个命令处理的过程来说,我认为主要可以分成四个阶段,它们分别对应了 Redis 源码中的不同函数。这里,我把它们对应的入口函数,也就是它们是从哪个函数开始进行执行的,罗列如下: 阅读全文
posted @ 2023-01-30 10:17 misaka-mikoto 阅读(173) 评论(0) 推荐(0) 编辑
摘要: tcmalloc TCMalloc 是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算法进行内存分配。它具有现代化内存分配器的基本特征:对抗内存碎片、在多核处理器能够 scale。据称,它的内存分配速度是 glibc2.3 中实现的 malloc的数倍 阅读全文
posted @ 2023-01-02 19:25 misaka-mikoto 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 我们可以先整体看一下 linux 的 IO 模型大体有哪些类型。 linux 的 IO 主要可以分为两个大类,而我们今天要介绍的 io_uring 就属于其中的 kernel IO 模型中的 async IO 模式的一种。 作为存储系统的开发者,高带宽和高 IOPS 是我们不断的性能追求,相比于通过 阅读全文
posted @ 2023-01-01 18:05 misaka-mikoto 阅读(779) 评论(0) 推荐(0) 编辑
摘要: 为什么需要协程 我们知道操作系统在线程等待IO的时候,会阻塞当前线程,切换到其它线程,这样在当前线程等待IO的过程中,其它线程可以继续执行。当系统线程较少的时候没有什么问题,但是当线程数量非常多的时候,却产生了问题。一是系统线程会占用非常多的内存空间,二是过多的线程切换会占用大量的系统时间。 协程刚 阅读全文
posted @ 2022-12-13 18:30 misaka-mikoto 阅读(1619) 评论(0) 推荐(0) 编辑
摘要: 简介 FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。FIO是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具,FIO的典型用途是编写和模拟的I/O负载匹配的作业文件。也就是说FIO 阅读全文
posted @ 2022-12-08 12:33 misaka-mikoto 阅读(446) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页