某服务上线

6月11日

第一次发版,配合运维解决线上环境问题。
操作步骤:

wget https://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz
sudo yum install libmpc-devel mpfr-devel gmp-devel
sudo yum install zlib-devel*
tar xf gcc-9.1.0.tar.gz
cd gcc-9.1.0
./configure --with-system-zlib --disable-multilib --enable-languages=c,c++
make -j24
sudo make install
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

6月12日

服务器扩容,新增2台机器。
新增机器之后,开放 CPU 限制导致,由于 login 消息积压,导致 CPU 一直满载。

ncpu := runtime.NumCPU()
if ncpu > 2 {
  runtime.GOMAXPROCS(int(ncpu) - 2)
}

MQ 消费问题,如何能更自然的解决积压问题,还有积压告警

问题:

如果没有消费者,生产者持续生成,数据会存到硬盘,过期策略,等到消费者上线会产生积压,要是新增一个消费者,之前的数据怎么搞,那不是都有积压,哈?

6月13日

四台机器消费能力正常,增加大数据提供的线上接口之后出现另外的问题,机器有16G的内存,基本一小时内打满。

分析原因是当前版本 resty 的遗留问题,针对类似参数多变的 URL 会进行 Metric 监控采集,由于 QPS 晚高峰达到 5000+ 情况下,大数据接口产生数据延时以及报错,导致 timer 时延进而内存堆积。

image.png

升级 resty 解决。
增加自定义 Metric

func SetMetric(typeStr string) {
    EncryptImp.metric.Counter(typeStr, map[string]string{
        "ctype": typeStr,
    }).Inc(1)
}

服务上线前对大数据的接口没有进行压测,线下没发现这个问题。
调整之后目前线上服务稳定。

总结

  • MQ 消费服务上线注意积压问题,准备解压方案
  • 对于 QPS 较高的服务进行完整性压测
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容