读书笔记2

负载指数调研 负载四要素:CPU + 内存 + 磁盘 + 网络
四要素的欧几里得距离作为负载指数
【读书笔记2】CPU资源:
CPU利用率:反应进程对CPU使用情况
Load Average:= Running + Waiting + Uninterruptable,反应进程对CPU需求情况
二者并非线性关系,CPU利用率低 load average 可能高,此时进程处于等待IO状态
负载均衡手段

  1. DNS pros:兼容性好 cons:作用有限(没有权重、只有IP地址、因为缓存不实时、不支持服务可用度上报)
  2. 网关:通过隧道技术可使server看到用户真实ip,并且可以维持会话信息,保证落到同一台server上
  3. 反向代理:Nginx 正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。
  4. 哈希规则
    • 轮询
    • weight:根据权重
    • ip hash:同一个用户落到同一个server
    • url hash
    • fair:根据响应时间选择
C++排查内存问题经验谈
  1. mprotect 设置 guard page,出现问题第一时间core dump,尽可能接近错误现场
  2. malloc_trim 尽快让 glibc 归还内存给操作系统(sbrk)
  3. what is non virtual thunk
一致性哈希算法 1. 经典一致性哈希 将节点映射到 [0, 2^32 - 1]的环上,同时将数据映射到[0, 2^32 - 1]的环上,查找第一个哈希值大于等于数据哈希值的节点。
更好的做法(避免了一台机器退出导致负载全部落入下一台机器):为每个物理节点分配若干个虚拟节点,使用虚拟节点作为哈希映射。

    推荐阅读