最近做了一次集群服务的在线切换,切换了原来的主从环境。当然,后端处理工作比较复杂,涉及到在线迁移和硬件改动。总体而言,切换后的读取延迟比原来降低了约0.4毫秒。对于延迟敏感的业务,0.4毫秒是一个非常高的比率。按照既定的比例规则,几乎优化了25-30%。部分。那么优化中节省的0.4毫秒在哪里呢?我们做了一些讨论和分析,不仅暗自感叹,还好优化了。如果延迟增加30%,要快速分析还是很有压力的。分析这个问题的难点在于一系列动态变量的存在,导致服务切换前后缺乏一些比较基准和衡量标准。我们简单细化了服务切换前的优化工作:1)新从库采用了全新的硬件配置,CPU型号更高,性能最高可提升30%2)主从库采用SATA-SSD存储使用了不同品牌3)主从切换前,数据表在从库进行了彻底的碎片整理4)原服务器的系统盘使用了SAS,新的从库统一按照SATA配置-SSDclass5)中间件服务器近2年没有重启过,本次维护重启过。此外,还有一些不确定因素,比如业务量的差异。分析,那么我们尝试通过下面的逻辑来分析一下。从初步来看,我们认为对数据表进行碎片整理后,这种提升的效果会比较高,因为切换前碎片率接近20%,清理后释放了近20%的空间。本来以为这么一套指标体系是比较进化的,但是对比了最近几天的业务延迟,一个业务的数据没有意义。我们假设是业务2,业务2的数据代表一张日表,也就是说这张表没有所谓的分片,因为每天都会有一个新的数据表写入数据。所以业务2的延迟应该没有变化或者有小的差异才有意义,但是这里可以清楚的看到延迟增加了近30%,这就没有意义了,所以简单的碎片清理带来的好处是没有预期的那么高。我们分析了系统负载,随机选择了一个分片节点,查看了切换前后的负载数据。一般来说,切换前后,平均负载增加了0.03,这个比例很低,可以认为可以忽略不计。让我们看一下CPU使用率。因为新服务器的CPU性能提升了近30%,我们整体对比了负载。可以发现这个业务与强计算无关,所以不管CPU配置多好,我们都会带过来。好处确实没有预期的那么明显。切换之后和切换之前,让我们看看磁盘。磁盘级别有很多指标。再看util指标:切换后:切换前:切换后整体util从16%提升到18%。很难给出一个客观的结论。对于磁盘读写级别的分析,可以看出等待延迟部分不是一个数量级的。这里切换后和切换前可能会有一个误区,就是切换前的指标不够准确,是0,我们可以放大指标,也就是选择其中一个指标,你可以看到指标在正确数据上的相对准确度。切换后:切换前:此时,我们可以看到延迟指标对于逻辑卷和不同的分区有明显的不同。虽然单项指标提升幅度在10%左右,但各项指标均略有提升。当然,碎片整理确实有所提升,但与磁盘层面的提升相比,占比确实没有那么高。下一个问题是进一步验证,需要分析不同SSD产品和稳定性测试数据之间的一些差异。一般来说,整个分析过程可以提供一个分析思路,而不仅仅是初步的结论。本文转载自微信公众号《杨建荣的学习笔记》,可通过以下二维码关注。转载本文请联系+杨建荣学习笔记公众号。
