负载指数调研
负载四因素:CPU + 内存 + 磁盘 + 网络
四因素的欧几里得间隔作为负载指数
CPU 资源:
CPU 利用率:反馈过程对 CPU 应用状况
Load Average:= Running + Waiting + Uninterruptable,反馈过程对 CPU 需要状况
二者并非线性关系,CPU 利用率低 load average 可能高,此时过程处于期待 IO 状态
负载平衡伎俩
- DNS pros:兼容性好 cons:作用无限(没有权重、只有 IP 地址、因为缓存不实时、不反对服务可用度上报)
- 网关:通过隧道技术可使 server 看到用户实在 ip,并且能够维持会话信息,保障落到同一台 server 上
- 反向代理:Nginx 正向代理次要是用来解决拜访限度问题。而反向代理则是提供负载平衡、平安防护等作用。
-
哈希规定
- 轮询
- weight:依据权重
- ip hash:同一个用户落到同一个 server
- url hash
- fair:依据响应工夫抉择
C++ 排查内存问题经验谈
- mprotect 设置 guard page,呈现问题第一工夫 core dump,尽可能靠近谬误现场
- malloc_trim 尽快让 glibc 偿还内存给操作系统(sbrk)
- what is non virtual thunk
一致性哈希算法
1. 经典一致性哈希
将节点映射到 [0, 2^32 – 1]的环上,同时将数据映射到 [0, 2^32 – 1] 的环上,查找第一个哈希值大于等于数据哈希值的节点。
更好的做法(防止了一台机器退出导致负载全副落入下一台机器):为每个物理节点调配若干个虚构节点,应用虚构节点作为哈希映射。