首页 > 修改教程 > gg修改器加入游戏消失_gg修改器为什么添加不了游戏
gg修改器加入游戏消失_gg修改器为什么添加不了游戏
  • gg修改器最新版
  • 大小:18.48MB版本:v7.07
  • 语言:简体中文系统:Android
绿色无毒,安全可靠!部分设备误报拦截请通过!

gg修改器加入游戏消失_gg修改器为什么添加不了游戏

作者:佚名 来源:网友分享 日期:2024-03-29 00:56:12

大家好,今天小编为大家分享关于gg修改器加入游戏消失_gg修改器为什么添加不了游戏的内容,赶快来一起来看看吧。

背景

上线新功能后,与之前相比,服务更加不稳定了。如果出现这种情况,需要高优先级查清原因,避免出现更大的问题。

问题描述

部分应用持续出现重启

过程

服务不稳定状态时堆内存及GC情况

故障原因

出现耗内存的操作,导致FullGC频繁且FullGC耗时过长,出现频繁出现大于2min的情况。

原因分析

不是。看查询报错的请求低于12%。由于没有从TableStore成功返回数据,因此并不会占用JVM堆内存

ots的报错情况

Full GC耗时过长,期间JVM会STW,所有接口都停止响应,提供给容器存活探测的接口同样没有影响,此时就会导致容器判定pod异常,并将其重启。

异常期间,pod存活探测的规则如下:

livenessProbe: # 存活探测的相关配置如下
httpGet:
path: /ready
port: http
initialDelaySeconds: 180
periodSeconds: 10 # 每隔10s探测一次
timeoutSeconds: 1 # 如果/ready接口1s内没有返回,则判断失败
successThreshold: 1
failureThreshold: 3 # 连续失败3次,则判断pod异常。容器重启pod

FullGC会STW,此时所有请求都会阻塞。

FullGC耗时超过30s时,存活探测就会连续失败3次,容器就认为此pod已经不可用了,按配置的规则K8s容器就会把这个pod重启。

异常期间FullGC耗时都超过120s了。必然会触发重启

FullGC超过30s,则容器会将pod重启

与之前相比,增加了比较多的耗内存操作。

TableStore服务器返回的数据,占用大量内存

新加的查询TableStore的业务线程

不合理。从业务上看,单次查询时符合条件的记录最多不会超过100。出异常时,有返回131262条的情况

返回的数据量过多

核对了下代码,发现查询条件错误。查询tableStore的三个条件应该是and的关系,但现在是or

这块逻辑是2020年的老代码,写的代码的同学,直接copy过去。可能是因为是两年前已经经过测试且已经上线的代码,code reivew就没有作为重点。具体过程,相关的同学都不记得了。

之前的服务也是有问题的。

老代码由一个定时任务触发。只是串行查询TableStore,虽然会耗内存,但如果跑定时任务的pod上没有其它在执行的耗内存操作,是不会触发FullGC的。

这也可能是当前应用偶发出现重启的原因。

新业务场景是接收到mq消息时,就会去触发这段老代码,当同时接收n个消息,则占用的内存*n ,则很容易触发FullGC

在查询TableStore,需要满足指定条件才会触发有异常的老代码。异常时,满足指定条件的业务请求增多。

Testing Case没有覆盖全部业务场景。

当三个and的筛选条件被错写成or时,查到的数据会变多。这种情况,需要的查询结果和不需要的都返回了,正常业务流程是不受影响的。

目前的这个场景所涉及到的查询结果数,被用于数据权限控制,返回的数据变多时造成的问题是访问权限放大了:有此数据权限的用户可以看到数据,没有此数据权限的用户也可以看到。会引发误操作

如果Testing Case只有一个:该查看数据的人是否可以查看。那么,测试是通过的。

小结

如果pod重启时,是qps增高,则优先增加Pod

如果pod重启时,识别到FullGC耗时过长,则优先考虑增加内存来解决

出现异常时,要把jvm堆内的数据dump出来。在没有找到异常原因时,要把dump出来的堆数据都查看一下,因为dump时,有的pod中的jvm可能刚启动不久,异常操作还没有被触发。

已经在线的代码,如果新功能涉及到,尽量不要copy

已经在线的代码,如果新功能涉及到,也要CodeReview

待上线的代码,要测试充分

待上线的功能,关键路径,测试Case要全面

增加jvm堆内存占用监控的告警,如果超过80%时就告警,然后dump出Heap内的数据进行分析

完善查询tableStore的索引,确保用到的索引是覆盖索引。

完善查询tableStore的条件,提升查询性能:如果不做分页,不返回totalCount,不对查询结果进行sort操作。改完后,要根据业务语义,重新对改动后的api进行测试,看看提供的行为是否保持不变

每个迭代确保用于技术优化的时间。目前这部分有一个bug需要解决:当前的规则中,需求的优先级是由产品决定,一个技术需求如果产品把优先级降低,如果引发故障,产品却不需要承担责任。需要推动这个事情解决,保持权责利一致,做多大的决定,就需要负多大的责任,也享受多大的利好。

FullGC耗时过长的原因及解决办法

以上就是关于gg修改器加入游戏消失_gg修改器为什么添加不了游戏的全部内容,希望对大家有帮助。

相关文章

热门下载

大家还在搜