https://chanjarster.github.io/post/go/scheduling-in-go-part-1/ https://chanjarster.github.io/post/go/scheduling-in-go-part-2/ https://chanjarster.github.io/post/go/scheduling-in-go-part-3/ 几个数字 operation cost 1纳秒 可以执行12条指令 OS上下文切换 ~1000到~1500 nanosecond,相当于~12k到~18k条指令。 Go程上下文切换 ~200 nanoseconds,相当于~2.4k instructions条指令。 访问主内存 ~100到~300 clock cycles 访问CPU cache ~3到~40 clock cycles(根据不同的cache类型) 操作系统线程调度器 你的程序实际上就是一系列需要执行的指令,而这些指令是跑线程里的。
https://blog.golang.org/a-new-go-api-for-protocol-buffers https://juejin.im/post/5e83e1176fb9a03c80278e6d
Squirrel(松鼠)是美团技术团队基于Redis Cluster打造的缓存系统。 https://www.cnblogs.com/meituantech/p/9376472.html https://tech.meituan.com/2018/03/16/redis-high-concurrency-optimization.html Root Cause 定位
Linux文件预读算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一… 从寄存器、L1/L2高速缓存、内存、闪存,到磁盘/光盘/磁带/存储网络,计算机的各级存储器硬件组成了一个金字塔结构。越是底层存储容量越大。然而访问速度也越慢,具体表现为更小的带宽和更大的延迟。因而这很自然的便成为一个金字塔形的逐层缓存结构。由此产生了三类基本的缓存管理和优化问题: