各位游戏大佬大家好,今天小编为大家分享关于gg修改器需要root版吗_gg修改器需不需要root的内容,轻松修改游戏数据,赶快来一起来看看吧。
上游系统通过公司rpc框架调用我们系统接口超时(默认超时时间为100ms)数量从50次/分突然上涨到2000次/分,在发生变化时间段里我们的系统也没有做过代码变更,但上游系统的调用确发生了变化。由于处于主要链路上,sre同学找过来询问原因,所以开始了问题排查。
排查rpc超时的基本思路是这样的:
1) 服务端处理确实超时
2) 服务端或者客户端由于某种原因卡住
a) 磁盘清理
b) tr线程池
c) gc
d) 网络
因为在发生问题时上游调用其他系统的服务并发生类似的情况,所以可以认为是服务端出现了问题而不是客户端。
rpc框架在有一个traceId,用于标识请求。同一个traceId在请求端的耗时是一百多毫秒,但是在接收端的耗时只有2-3ms,抽查了几天里的多个请求都是这样的情况请求端的耗时远大于接收端的耗时。这样就排除了超时是由服务端处理引起的。
线上系统通常会打印一些日志,用于记录系统的运行情况,方便问题排查和进行监控,当这些日志的数量累计到一定量时,会进行磁盘清理。在磁盘清理期间,会对IO有较大的影响。通过查看磁盘清理日志,发现磁盘清理时间和调用超时时间并不匹配;另外磁盘清理是偶发性的,但是上游系统调用超时是持续性的,因而磁盘清理导致超时也可以排除。
rpc框架采用的是NIO方式进行客户端和服务端进行通讯,在服务端会有一个线程池处理到达的请求,查看了对应的线程池日志,发现线程池的队列中出现堆积的次数一天只有几次而已,但请求端调用服务出现的超时问题会连续几个小时出现的。因而超时问题由线程池的配置引起也可以排除。
我们的服务是多地多机房部署模式,从调用方最远的机房到我们这边机房网络耗时大概为25ms,来回就是50ms,加上服务端的处理时间,客户端的请求总时间应该在60ms左右,但是现在的总耗时在100ms以上,说明网络也不是该问题的主要原因。
对上游系统调用我们系统超时的机器进行汇总,发现超时的请求主要集中在内存为4g的机器上,而10g的机器出现超时的情况很少,因而对4g和10g机器的gc进行了分析,发现二者有很大的不同:
从上面的表格可以看到,10g机器的新生代清理效率是4g机器的新生代清理效率20多倍,4g机器新生代的清理耗时过长。初步判断,请求方访问超时应该和4g机器的young gc执行时间过长可能有关。
jvm中的young gc过程大致分为如下几个步骤:
1) 存活对象标注
2) 存活对象从Edge区拷贝到Survivor 1,重置指针
3) 清理Edge区和Survivor 2
4g和10g机器都是4核,二者的cpu的主频和一级二级缓存是相同的,从理论上讲二者的清理效率应该是相等的,但现在4g机器清理的内存的性能却比10g清理却相差如此多,说明问题可能发生在存活对象标注上。同时young gc过程中的存活对象标注是要STW,这个阶段jvm会对外停止响应,很有可能是因为这个STW导致响应超时。
Jvm中的young gc是从GC roots开始的,GC root作为tracing GC的“根集合”,主要包含:
1) Class – 由系统类加载器(system class loader)加载的对象,这些类是不能够被回收的,他们可以以静态字段的方式保存持有其它对象。我们需要注意的一点就是,通过用户自定义的类加载器加载的类,除非相应的java.lang.Class实例以其它的某种(或多种)方式成为roots,否则它们并不是roots,.
2) Thread – 活着的线程
3) Stack Local – Java方法的local变量或参数
4) JNI Local – JNI方法的local变量或参数
5) JNI Global – 全局JNI引用
6) Monitor Used – 用于同步的监控对象
7) Held by JVM – 用于JVM特殊目的由GC保留的对象,但实际上这个与JVM的实现是有关的。可能已知的一些类型是:系统类加载器、一些JVM知道的重要的异常类、一些用于处理异常的预分配对象以及一些自定义的类加载器等。然而,JVM并没有为这些对象提供其它的信息,因此就只有留给分析分员去确定哪些是属于”JVM持有”的了。
4g机器和10g机器运行的代码都是相同,因而能够导致gc root不同个地方应该是第二和第六项。
对4g机器的线程进行了dump,在zprofile中进行了下分析,分析结果显示存在线程阻塞的情况,而后定位到所有的线程阻塞都是在一个发送消息的方法上,而这个方法是synchronized的,由于synchronized导致了调用线程获取不到锁的时候发生了阻塞。
这个方法的作用是发送消息,但是为了减少消息发送的次数,在内部进行了消息的合并,当消息内容达到一定量时才发送(现在设定的是3k),整体流程如下
这其实是一个简单的流程,但由于会存在多个线程对存储消息的list和存储消息体大小的size进行写操作,特别是对list的操作时,会存在有些线程在向list中添加数据,而有些线程间接触发了arraylist的clear操作,这样就会报ConcurrentModificationException
。同时为避免在计算消息体大小时多线程操作引起的计算值比实际值小的问题就给这个方法用了synchronized 关键字加锁让其顺序操作。
主要的修改有3个
1) 把用arraylist存储消息体采用ConcurrentHashMap,map中的key是一个uudi,value是消息体本身。从arraylist改为ConcurrentHashMap,可以大大增加并发性能。
2) 采用AtomicInteger来保存当前map中消息内容的大小。
3) 当map中的消息体总大小到达阈值后,先将当前map中的所有的key取出,然后将map中的数据封装到一条消息中发送出去,将当前map中消息体的大小置为0,而后for循环删除已成功发送的key。
优化后线程阻塞情况不存在。
报错从之前的近2000/分回到了50/分。
问题虽然得到了解决,但是线程阻塞和young gc耗时的确切关系还是没有不太清楚,需要后续继续了解,也看哪位大神给解释下。
以上就是关于gg修改器需要root版吗_gg修改器需不需要root的全部内容,游戏大佬们学会了吗?
王者荣耀段位修改器2021下载,王者荣耀段位修改器不封号 分类:免root版 6,609人在玩 hell小伙伴们大家好,小编又来给大家送福利了!你还在寻找一款强大的辅助器吗?今天小编带来这款王者荣耀段位修改器是2021年最新的一款不封号修改器,这是一个功能强大的游戏修改……
下载gg修改器免root修改器,下载 gg修改器免root修改器,轻松定制你的手机体验! 分类:免root版 916人在玩 现在的手机都自带很多功能,但是有时候我们还是会觉得不够用,或者想要定制一些更个性化的设置。而这时候,gg修改器免root修改器就能派上用场啦! 简单易用,不需要root权限 使用g……
下载王者荣耀万能点券修改器安卓版,王者荣耀万能点券修改器下载 分类:免root版 667人在玩 hell,老铁们你们好啊!今天的热门工具是非常厉害的,王者荣耀万能点券修改器安卓版是2021年最新的王者荣耀刷点卷修改器。这是一个不封号,完全免费的王者荣耀点券修改器,想要买很……
下载gg修改器需要root吗,下载gg修改器,不需要root权限 分类:免root版 4,391人在玩 GG修改器是一款广受欢迎的游戏修改工具,许多玩家喜欢使用它来获得更好的游戏体验。之前,很多人认为这个工具必须要有root权限才能使用,但是现在这个问题已经被解决了。 方便易用 ……
下载gg修改器可以免root,软件推荐:GG修改器,让你轻松免 Root 修改游戏 分类:免root版 1,924人在玩 现在玩手机游戏已经成为人们生活中的重要娱乐方式,但是一些特别好玩的游戏却需要 Root 后才能进行修改。对于不懂技术的普通用户来说,这无疑增加了许多困难。幸运的是, GG修改器 ……
下载下载gg修改器和免root版,下载GG修改器和免Root版让你游戏更劲爆 分类:免root版 4,236人在玩 如果你是一个喜欢玩手机游戏的人,那么你肯定知道GG修改器这个软件。GG修改器是一款非常强大的游戏辅助工具,它可以让你在游戏中获得无限金币、钻石、积分等资源,让你在游戏中轻松……
下载如何root gg修改器_gg修改器root教程 分类:免root版 5,888人在玩 各位游戏大佬大家好,今天小编为大家分享关于如何root gg修改器_gg修改器root教程的内容,轻松修改游戏数据,赶快来一起来看看吧。 如果你以前经常去各大论坛一定也会接触到“ROOT”……
下载免Root权限GG修改器,免Root权限GG修改器让你畅玩游戏的利器 分类:免root版 4,105人在玩 随着智能手机的普及,越来越多的人喜欢在手机上玩游戏。但是有些游戏为了保证公平性,会设置一些限制,比如不能使用一些外挂工具。这个时候,我们就需要一款好用的GG修改器来帮助我……
下载免root版GG修改器下载,免root版GG修改器下载让你在游戏中轻松获胜 分类:免root版 3,530人在玩 作为一款专业的游戏辅助工具,GG修改器早已经成为了很多玩家必备的软件之一。但是,对于没有ROOT权限的手机用户来说,安装和使用它却相当不便。现在,好消息来了——免root版GG修改器……
下载gg修改器免root版链接,下载链接:GG修改器免root版 分类:免root版 4,278人在玩 如果你经常玩游戏,那么你一定知道一些游戏中的道具和角色不仅需要大量时间来获得,还需要花费大量的金钱。有没有想过,如果可以使用一个工具来简化这个过程会多好呢?这就是 GG 修……
下载