<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[王伟王胖胖的博客]]></title><description><![CDATA[对技术有点追求而已]]></description><link>https://blog.csdn.net/wangwei19871103</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wangwei19871103]]></copyright><item><title><![CDATA[DefNewGeneration收集器流程粗略解析二]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123663539</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123663539</guid><author>wangwei19871103</author><pubDate>Tue, 22 Mar 2022 19:28:32 +0800</pubDate><description><![CDATA[DefNewGeneration收集器流程粗略解析二各种软，弱，虚等引用处理最后处理无晋升失败的情况有晋升失败的情况GC日志顺序GC前后的堆内存统计日志**GC**的原因以及信息处理引用耗时信息动态调整年龄阈值日志
各种软，弱，虚等引用处理

可以看到里面会处理这些引用，具体代码比较负复杂不看下去了：

最后处理
无晋升失败的情况
如果前面的晋升，复制没有问题的话，也就是说把非垃圾的标记好了，复制到to区了，或者是晋升到老年代了，剩下的就是把eden和from清理掉，然后把from和to交换下，最后再动态计]]></description><category></category></item><item><title><![CDATA[DefNewGeneration收集器流程粗略解析一]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123663127</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123663127</guid><author>wangwei19871103</author><pubDate>Tue, 22 Mar 2022 19:27:51 +0800</pubDate><description><![CDATA[DefNewGeneration收集器流程粗略解析一目的判断是否可以进行收集(collection_attempt_is_safe)处理GCROOT对象(GenCollectedHeap::gen_process_strong_roots)扫描GCROOT引用对象FastScanClosure::do_oop拷贝到幸存区处理DefNewGeneration::copy_to_survivor_space递归处理引用链递归标记引用FastEvacuateFollowersClosure::do_void
目的]]></description><category></category></item><item><title><![CDATA[GC问题排查实战五-G1日志分析以及动态年龄调整机制]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123601785</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123601785</guid><author>wangwei19871103</author><pubDate>Sat, 19 Mar 2022 20:39:40 +0800</pubDate><description><![CDATA[GC问题排查实战五-G1日志分析以及动态年龄调整机制G1分析参数跑完后数据gc日志数据safepoint相关数据动态年龄调整机制(ParNew做例子)hotspot相关源码jdk1.8-b26哪些收集器会用到这个机制这个机制在哪个阶段被使用年龄阈值在哪个阶段被使用总结
G1分析
这次我们用G1试试。
参数

-Xms8192M -Xmx8192M -Xmn4096M -Xss1M -XX:+UseG1GC -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -]]></description><category></category></item><item><title><![CDATA[GC问题排查实战四-cms日志分析]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123601655</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123601655</guid><author>wangwei19871103</author><pubDate>Sat, 19 Mar 2022 20:38:52 +0800</pubDate><description><![CDATA[GC问题排查实战四cms分析参数跑完后的数据gc日志数据safepoint相关数据总结
cms分析
接着上篇，我们同样的例子，用cms试试。
参数

-Xms8192M -Xmx8192M -Xmn4096M -Xss1M -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -XX:+PrintReferenceGC -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1 -XX:Me]]></description><category></category></item><item><title><![CDATA[GC问题排查实战三-Parallel Scavenge和Parallel Old日志分析]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123601432</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123601432</guid><author>wangwei19871103</author><pubDate>Sat, 19 Mar 2022 20:37:36 +0800</pubDate><description><![CDATA[GC问题排查实战三年轻代GC的耗时问题Parallel Scavenge和Parallel Old参数跑完后数据gc日志数据safepoint相关数据晋升问题
年轻代GC的耗时问题
本篇开始一些比较细节的东西，想看看年轻代垃圾收集到底耗时耗在哪里，以便于出现问题的时候有解决思路，本次会用相同的例子压测，然后分别用Parallel Scavenge和Parallel Old,CMS,G1来进行垃圾回收，分析年轻代的一些耗时问题。
Parallel Scavenge和Parallel Old
参数

-Xms8]]></description><category></category></item><item><title><![CDATA[GC问题排查实战二]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123283378</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123283378</guid><author>wangwei19871103</author><pubDate>Sun, 06 Mar 2022 15:41:20 +0800</pubDate><description><![CDATA[GC问题排查实战二JDK低版本的bug(GCLocker Initiated GC)的问题CMS的最终标记触发young gc的问题年轻代GC信息分析老年代GC情况分析年轻代分配和晋升情况分析CMS回收阶段统计分析垃圾生成分析内存泄露分析GC的原因总结
JDK低版本的bug(GCLocker Initiated GC)的问题
接着上篇，这个就很奇怪，前面刚经过一次young gc，怎么又来，而且年轻代没满，收集了一点点，于是只能百度了，然后发现这个bug，是低版本的，刚好我们用的是1.8.0_162，所以应]]></description><category></category></item><item><title><![CDATA[GC问题排查实战一]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/123283138</link><guid>https://blog.csdn.net/wangwei19871103/article/details/123283138</guid><author>wangwei19871103</author><pubDate>Sun, 06 Mar 2022 15:40:13 +0800</pubDate><description><![CDATA[GC问题排查实战一前言GC信息参数配置信息gceasy分析内存使用GC时间指标交互图信息GC之后的堆情况分析GC过程的持续时间分析GC暂停时间分析缺失的数据问题回收的容量分析
前言
最近在进行GC的相关调优和问题排查，进行了一个全用例的场景压测，可以抽象为5W用户连接，500QPS并发，然后持续大致24个小时。随后进行一些分析，并找出其中可能存在的问题，以及可以优化的方向。
GC信息

参数配置信息
-Xms12G -Xmx12G -Xmn4G -XX:MetaspaceSize=300M -XX:Surv]]></description><category></category></item><item><title><![CDATA[kafka知识点总结]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122952765</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122952765</guid><author>wangwei19871103</author><pubDate>Tue, 15 Feb 2022 21:55:51 +0800</pubDate><description><![CDATA[kafka知识点总结Kafka基本架构图基本概念以及作用副本同步概念如何保证副本数据一致性kafka存储机制Partition 文件存储方式如何找到消息
Kafka基本架构图

基本概念以及作用

Producer： 消息生产者，向 Kafka 集群发消息的客户端。
Consumer： 消息消费者，从 Kafka 集群啦取消息的客户端。
Consumer Group： 消费者组（CG），消费者组内每个消费者负责消费不同分区的数据，提高消费能力。一个分区只能由组内一个消费者消费，消费者组之间互不影响。所有的消]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍八:akka actor模型基本介绍]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122851806</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122851806</guid><author>wangwei19871103</author><pubDate>Sat, 12 Feb 2022 19:32:39 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍八:actor模型介绍actor模型优点存在的问题
actor模型
先上一张图，网上弄来的：

一看好像是发送邮件，可以把这个模型看成发送邮件，而且有信箱，好像就是多人通信，一个actor就是一个人，actor之间相互通信，用的是邮件。平时都用过邮件的吧，邮件的特点是什么呢，就是异步非阻塞的优点，发送者可以不关心接受者什么时候收到，是否已经处理，他只管发送到他的邮箱咯，当然接受者也是，他不关心谁给他发的，他想处理邮件就从邮箱中拿出来处理，根据具体邮件内容来进行处理。
优点

异步非阻塞]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍七:play framework介绍]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122847708</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122847708</guid><author>wangwei19871103</author><pubDate>Wed, 09 Feb 2022 20:50:33 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍六:play framework介绍play framework介绍小试牛刀特点
play framework介绍
压测系统的后端是用这个框架来做的，先看看这个是什么吧，直接看官网。构建web应用框架，可以是用java和scala，看到这里猜想为什么作者要用这个了，有scala的，gatling就是scala写的。

然后看下他的特性，是不是跟springmvc有点像啊：

具体有兴趣可以慢慢看他的文档了解下。
小试牛刀
idea中也有这个的，就是选scala的时候：


scala版]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍六:idea中启动]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122849315</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122849315</guid><author>wangwei19871103</author><pubDate>Wed, 09 Feb 2022 20:48:53 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍六:idea中启动idea配置
idea配置
前面说的都是命令行启动的，今天说下idea怎么配置，首先下载项目，本地安装好环境，然后idea的setting里有个sbt的设置，可以指定用哪里的sbt，以及一些参数：

比如设置一些参数，指定用哪个仓库配置文件，以及相关的缓存存在哪里：
-Dsbt.repository.config=D:/sbt/conf/repositories
-Dsbt.boot.directory=D:/sbt/boot
-Dsbt.ivy.home=D:/sb]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍五:分布式演示]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122840250</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122840250</guid><author>wangwei19871103</author><pubDate>Wed, 09 Feb 2022 13:52:18 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍五分布式演示
分布式演示
前面的例子只演示了一台施压机，现在模拟分布式2台，其实也就是再开个进程，我们可以把项目复制到另一个目录，然后单独启动play，不启动ui，这个前面文章有说过了，怎么设置，命令：
sbt "run -Dhttp.port=20010 -DPORT=20010 -DADDRESS=127.0.0.1 -DZK_IP=127.0.0.1 -DHOST=test20010 -DARTHAS_URL=http://127.0.0.1:40000/?port=40001"]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍四:压测例子后台服务]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122833324</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122833324</guid><author>wangwei19871103</author><pubDate>Tue, 08 Feb 2022 23:52:35 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍四压测例子后台例子dubbo例子运行grpc例子运行http例子运行
压测例子后台
前面有说有些压测例子需要有后台，只有BaseHttp不需要，所以这回把其他4个例子补齐了。

例子
例子里面有3种协议，HTTP,DUBBO,GRPC，只是做了最简单的测试接口，具体就不多说了，直接上github地址https://github.com/wang860770/loadtest_example
记得要把zookeeper启动，起来，因为dubbo要用直接可以用idea打开的，然后直接运行：]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍三:单独启动]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122826539</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122826539</guid><author>wangwei19871103</author><pubDate>Tue, 08 Feb 2022 22:27:16 +0800</pubDate><description><![CDATA[启动ui
检查下环境是否好了之后，此时可以去项目的ui文件夹下启动下，比如这个命令：
ng serve --port 4300 --open --proxy-config src/proxy.conf.js --host 0.0.0.0 --disableHostCheck

当然第一次可能遇到这个问题，就是依赖没装呢：

用npm install或者直接yarn install安装依赖：


此时应该会自动跳转到页面：

看到下面的红色的报错是对，因为后台服务器没开呢：


...]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍二:体验功能]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122827615</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122827615</guid><author>wangwei19871103</author><pubDate>Tue, 08 Feb 2022 22:26:24 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍二体验功能所有节点脚本编译在线编辑并同步节点开始压测实时数据压测报告arthas
体验功能
所有节点
这里会去zookeeper获取所有注册的施压节点，点击所有节点，看到有即说明启动完成了，如果没出来，可以先等会儿，因为他是懒加载的。

脚本编译
这里就是进行脚本编译的，如果修改了压测相关脚本的话，都要进行编译，是在线的增量编译，很快的：

编译完成后点上面的刷新按钮可以看到编译出来的场景脚本，第一个是访问外网的例子，可以直接跑，后面几个是需要自己的后台服务的，我也写好了例子，到时候上]]></description><category></category></item><item><title><![CDATA[分布式压测系统详细介绍一:环境搭建]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122825348</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122825348</guid><author>wangwei19871103</author><pubDate>Tue, 08 Feb 2022 22:25:54 +0800</pubDate><description><![CDATA[分布式压测系统详细介绍一分布式压测系统大致架构项目安装启动安装node环境安装node安装Angular CLI安装zookeeper安装sbt启动项目安装arthas相关
分布式压测系统大致架构
我画了个大概的架构图：

其实主要就是前后端，加上zookeeper做注册中心以及arthas做性能排查。前段用的是angularJS，后端是play framework，这个跟springmvc类似，也是个web框架，有兴趣可以看下官网。
项目安装启动
介绍完了基本的东西，应该先下来启动吧，眼见为实，当然需要一]]></description><category></category></item><item><title><![CDATA[性能优化与压测引擎五:增强版分布式压测系统]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122823375</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122823375</guid><author>wangwei19871103</author><pubDate>Tue, 08 Feb 2022 22:17:44 +0800</pubDate><description><![CDATA[性能优化与压测引擎五:增强版分布式压测系统增强版分布式压测系统Enhanced Pea主要增强点脚本文件模拟场景脚本文件脚本相关文件arthas的web端github地址
增强版分布式压测系统Enhanced Pea
前面介绍了分布式压测系统pea，其实已经很强大了，不知道有没小伙伴拿下来玩过，挺不错的，不过可能因为环境什么的有些问题，我下载下来运行的时候也出现了一些问题，然后进行了修复，又增加了一些内容，比如增加了直接在线编辑脚本，虽然比较low，但是基本功能有了，还比如我把arthas的web嵌入进去了]]></description><category></category></item><item><title><![CDATA[性能优化与压测引擎四:gatling和arthas实战]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122786277</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122786277</guid><author>wangwei19871103</author><pubDate>Fri, 04 Feb 2022 22:28:49 +0800</pubDate><description><![CDATA[性能优化与压测引擎四gatling和arthas结合实战例子springboot接口例子控制器日志模拟gatling压测脚本开启arthas开启压测后观察问题分析解决方案总结
gatling和arthas结合实战例子
准备一个简单的例子，说明下工作中的一个简单的找问题和优化例子，虽然简单，但是很实用。
springboot接口例子
控制器
@RestController
public class HelloController {

    @Autowired
    private Logger log]]></description><category></category></item><item><title><![CDATA[性能优化与压测引擎三:性能优化利器arthas]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122776334</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122776334</guid><author>wangwei19871103</author><pubDate>Thu, 03 Feb 2022 16:18:25 +0800</pubDate><description><![CDATA[性能优化与压测引擎三性能优化利器arthas简单使用网页版Tunnel网页版
性能优化利器arthas
这个应该不陌生吧，阿里开源的，用于做性能优化和问题排查的，具体就不介绍了，可以看下这个学习文档很关键，基本所有问题都可用这个来解决，其实做性能检测的还有其他的一些工具，比如Jvisulvm，Jprofile，都是可视化的工具，可用看CPU，看GC，看堆内堆外等信息，特别是Jprofile的功能更强大，可用看mysql数据库没个链接的信息，以及每个sql的调用信息，有兴趣的可以学习下，Jprofile学习连]]></description><category></category></item><item><title><![CDATA[性能优化与压测引擎二:分布式压测引擎pea]]></title><link>https://blog.csdn.net/wangwei19871103/article/details/122775844</link><guid>https://blog.csdn.net/wangwei19871103/article/details/122775844</guid><author>wangwei19871103</author><pubDate>Thu, 03 Feb 2022 14:47:34 +0800</pubDate><description><![CDATA[性能优化与压测二分布式压测引擎pea
分布式压测引擎pea
前面介绍了gatling是铺垫，这个才厉害，这个作者把gatling框架封装了下，做了一个分布式的web压测系统，真的很不错，而且开源了，我也是在他的基础上加工的，所以还是要先介绍下这位大佬的这个引擎，github。

...]]></description><category></category></item></channel></rss>