/images/avatar.jpg

Kiosk Studio (2022)

Golang的Map长啥样

Map 是每个编程语言必备的数据结构,就连 lua 这种胶水语言都支持其功能,map 的底层是一个 HashTable,Go 语言的map使用十分简易,但其内部实现不是简单的一个 HashTable。

算法 - (深度优先搜索)

Depth-First Search,也就是DFS算法,一般可以用来遍历或者搜索树或图。基本思想是假设走一条只有一个出口,但是路上可能会有很多分叉口的路,从头开始,每次遇到一个分叉口就随机选择一条路,当该条路走不通时,就回到上个分叉口重新选择。直到遍历到正确的路线。

虚拟机怎么做到热迁移

之前买腾讯云服务的时候,有2大问题一直困扰着我。

  1. 我的虚机经常CPU使用率不到5%,它会不会它拿着我的资源去偷偷接济同物理机上的其他高负载业务。反正我也不知道。
  2. 我一次性买了3年的虚机,一台物理机能一直开机3年吗?总得重启一下吧,在上家公司的做运维的时候,物理机真的是不停有物理机宕机

这里就对第二个疑问做个终结,因为我知道答案了,云厂商有热迁移技术。

什么是 NUMA

最近再看虚拟化相关内容的时候注意到 KVM 支持 SMP 和 NUMA 多 CPU 架构的主机和客户机。注意到CPU的模型概念。

之前其实有听到过 CPU 模型对高性能计算的影响。但是又不清楚其中的原理。高性能云服务可能会引入 numad 守护进程来优化 NUMA 的资源分配。

Linux man手册中对numad的定义为A user-level daemon that provides placement advice and process management for efficient use of CPUs and memory on systems with NUMA topology.(为高效利用CPU和内存提供布局建议和进程管理功能的用户态守护进程。)

本文将介绍一下什么是 numa ,以及到底有什么用。