Hamburg - 抓包/耗时分析工具
一、简介 Hamburg是一款用Go实现的抓包/耗时分析的工具,项目地址为 https://github.com/bugwz/hamburg。该工具的设计思想以及实现逻辑基本参照tcpkit。 二、功能实现 抓包/拆包:使用 gopacket 进行抓包以及IP/TCP/UDP等信息的解析; 耗 ...
Read more
Keepalived的高可用基石 - VRRP协议
一、背景 路由实现了不同子网之间的数据通信,目前比较常用的路由配置方法大概分为两种:动态路由(利用RIP、OSPF进行动态学习)和静态路由(对终端设备静态配置路由)。动态路由可以通过学习的方式获取路由表,避免了静态路由需要手动配置以及后续变更的繁琐,但同时需要额外的占用线路带宽和CPU的处理时间。 ...
Read more
Keepalived的学习与使用
一、简介 Keepalived 软件起初是专为LVS负载均衡软件设计的,用来监控管理LVS集群系统中各个服务节点的状态,后来又加入了可以解决静态路由单点故障问题从而实现高可用的VRRP功能。因此,Keepalived 除了能够管理LVS软件外,还可以作为其他服务(例如Nginx、Haproxy、M ...
Read more
小米8刷入MIUI12国外版
一、MIUI相关版本 国内版本:MIUI的官方国内版本,功能比较齐全,国内的服务套件比较齐全(小爱同学等),但是广告比较多,并且预装应用以及后台常驻的系统组件比较多,缺少Google套件(可以通过其他方式安装,但是会有稳定性以及兼容问题); 国际版:MIUI的官方的国际版本(也被称为俄罗斯版本) ...
Read more
LVS的四种工作模式
一、DR模式 1.1、原理 客户端将访问VIP报文发送给LVS; LVS将客户端请求报文的MAC地址改为后端真实服务器的MAC地址; 后端真实服务器得到访问报文后进行IP查看,在确认自己有对应的VIP之后进行请求处理; 后端真实服务器在处理完数据请求后,直接响应客户端; 数据包流转过程: ...
Read more
Memcached的钙化及相关解决方案
一、背景 由于Memcached存储数据的时候是按照Slabs分类进行存储的,当内存达到Memcached限制的时候,服务进程会执行一系列的内存回收方案,但是,不管是什么内存回收方案,回收的大前提就只有一种:只回收与即将写入数据写入数据块一致的Slabs。因此,这就导致了在业务访问模型变更之后,M ...
Read more
译 - Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol
原文:Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol 摘要缓存:可扩展的广域Web缓存共享协议 摘要 Web Proxy之间的共享缓存是减少Web流量并缓解网络瓶颈的一项重要技术。然而,由于现有协议的开销,它并未得到广泛 ...
Read more
Codis的Slots-Rebalance算法
一、简述 Codis中所有的key都被hash到1024个slots上,在每个slots分配均匀的前提下,如果一个分片中的slots过多,该分片中存储的key的数量也就越多,该分片对应的负载也就越大,在扩缩容之后为了保证集群中各分片的负载均衡,需要调整分片的slots的数量。 1.1、使用场景 ...
Read more
SSD存储结构对比分析
一、简介 SSD的存储单元包含如下几种:SLC、MLC、TLC和QLC,下面对比分析一下这几种存储颗粒的差异。 二、SLC(Single-Level Cell) 每个Cell单元存储1bit信息,也就是只有0、1两种电压变化,结构简单,电压控制也快速; 2.1、优缺点 优点: 寿命长,性 ...
Read more
HAProxy的学习与使用
一、简介 HAProxy 是一个用于提供高可用、负载均衡以及基于四层和七层网络的代理软件,常使用于对性能要求较高,差错容忍度较低的场景。 1.1、安装 前往HAProxy的官网,下载指定版本的源码包文件(当前的最新版本为2.1.2)进行安装,其中TARGET后的具体参数依据系统的内核版本进行指定 ...
Read more