压测 服务器内存缓慢上涨_程序员撕开京东 618 大促压测的另一面 | 原力计划

52a8259f83caddbc6cf93957e68ce7c8.png

作者 | 天涯泪小武

责编 | 王晓曼

出品 | CSDN博客

前天618大促演练进行了全链路压测,在此之前刚好我的热key探测框架也已经上线灰度一周了,小范围上线了几千台服务器,每秒大概接收几千个key探测,每天大概几亿左右,因为量很小,所以框架表现稳定。借着这次压测,刚好可以检验一下热key框架在大流量时的表现。毕竟作为一个新的中间件,里面很多东西还是第一次用,免不得会出一些问题。

压测期,我没有去扩容热key的worker集群,还是平时用的3个16C+1个4C8G的组合,3个16核是是主力,4核的是看上限能到什么样。

由于之前那一周的平稳表现,导致我有点大意了,没再去好好检查代码。导致实际压测期间表现有点惨淡。

框架的架构如下:

4a48fd2ef448aa8dca36bb9550de1429.png

大概0点多压测开始,初始量比较小,从10w/s开始压,当然都是压的APP的后台,我的框架只是被动的接收后台发来的热key探测请求而已。我主要检测的就是worker集群,也就是那4台机器的情况。

从压测开始的一瞬间,那台4核8G的机器就CPU100%,16核的CPU在90%以上,4核的100%即便在压测暂停的间隙也没有恢复,一直都是100%,无论是10w/s,还是后期到大几十万/s。16核的在20w/s以上时也开始CPU100%,整体卡到不行了已经,连10秒一次的定时任务都卡的不走了,导致定时注册自己到etcd的任务都停了,再导致etcd里把自己注册信息过期删除,大量和Client断连。

然后Dashboard控制台监听etcd热key信息的监听器也出了大问题,热key产生非常密集,导致Dashboard将热key入库卡顿,甚至于入库时,都已经过期1分钟多了,导致插入数据库的时间全部是错的。

虽然Worker问题蛮多,也蛮严重,但好在etcd集群稳如老狗,除了1分钟一次的热key密集过期导致CPU有个小尖峰,别的都非常稳定,接收、推送都很稳,Client端表现也可以,没有什么异常表现。

其中etcd真的很不错,比想象中的更好,有图为证:

3381618f4903f5668452ae03e2b7409c.png

Worker呢就是这样子

146305eebc2c11e360f430b1d3d1a615.png

后来经过一系列操作,我还乐观的修改上线了一版,然后没什么用,在100%上稳的一匹。

后来经过我一天的研究分析,发现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一名 Java 程序员,了解硬件层面的内存知识是非常重要的。在 NUMA 架构下,内存的访问速度会受到影响,因此了解 NUMA 架构的内存分布和访问方式,可以帮助程序员优化程序的性能。 NUMA 架构是一种多处理器架构,其中每个处理器都有自己的本地内存和一组本地 I/O 设备。这些处理器通过一个快速互联网络连接在一起,共享全局内存和 I/O 设备。 在 NUMA 架构下,内存被分割成多个本地内存区域和全局内存区域。本地内存区域是指与处理器直接相连的内存区域,访问速度最快。全局内存区域是指被所有处理器共享的内存区域,访问速度相对较慢。 程序员需要了解的是,当一个线程在处理器上执行时,它会优先访问本地内存区域,如果需要访问全局内存区域,则会通过互联网络访问,这会导致访问速度变慢。因此,在程序设计时,需要尽可能地减少线程之间的共享内存,避免出现频繁的跨处理器访问全局内存的情况。 另外,程序员还需要了解内存对齐的概念。在 NUMA 架构下,由于不同处理器的内存访问速度不同,如果内存没有对齐,则会导致不同处理器之间的数据传输速度不一致,进而影响程序的性能。因此,在程序设计时,需要注意内存对齐的问题,尽可能地将数据放在相邻的内存位置,避免出现不必要的跨处理器数据传输。 总之,了解 NUMA 架构的内存分布和访问方式是非常重要的,可以帮助程序员优化程序的性能。程序员需要注意线程之间的共享内存内存对齐的问题,尽可能地减少跨处理器访问全局内存的情况,提高程序的执行效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值