线上排查:新生代老年代比例错误问题 起因 线上一个应用频繁full gc,排查发现单pod总内存3g的情况下新生代只有200mb,很奇怪,于是到容器里查看jvm参数。 jamp -heap 1,打印 Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize…
TCP中的超时时间计算-指数移动加权平均 TCP协议使用指数移动加权平均来计算和预估往返时间RTT。这个东西比较巧妙,比较值得借鉴。 我们假设在某一个时间对往返时间RTT进行一次样本的测量,得到SampleRTT,那么我们对于我们设置均值RTT-EstimatedRTT,可以通过指数移动加权平均来不断迭代: EstimatedRTT = (1 -a…
基于Quorum投票的冗余控制算法 描述(维基百科) 在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝。但是同一时刻一个数据对象的多份拷贝只能用于读或者用于写。 该算法可以保证同一份数据对象的多份拷贝不会被超过两个访问对象读写。 算法来源于[Gifford, 1979][3][1]。 分布式系统中的每一份数据拷贝对象都被…
锁的定义 在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。 锁的实现 锁在计算机底层的实现,依赖于CPU提供的CAS指令(compare and swsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁。 JVM中的锁 jvm中,有2个常用的锁 synchronized synchroni…
前言 近日,苦于不知道该怎么提升自己了,在原来老大的建议下,决定去学习一些关于建模和软件设计领域的书籍,来解决解决自己“感觉不对,但是说不清楚为什么不对”以及“感觉这么搞就对了,但是不知道为什么这么去规划,这么去划分就对” 第一本看的是潘加宇老师的《软件方法(上)业务建模和需求》,本篇读后感不再对文里的概念和内容一一赘述,只说说个人提炼到的收获 业…
线上排查:内存异常使用导致full gc频繁
线上排查:内存异常使用导致full gc频繁 问题系统 日常巡检发现,应用线上出现频繁full gc 现象 应用线上出现频繁full gc 排查过程 分析dump 拉dump文件:小插曲:dump时如果指定:live,则在dump前jvm会先进行一次full gc,并且gc log里会打印dump full gc,这种对非内存泄漏导致的线上异常内存…
贝叶斯概率以及贝叶斯公式
使用OpenCv+Arduino实现挂机自动打怪
经验总结:内存泄露的原因以及分析
贝叶斯概率以及贝叶斯公式 前言 看到归纳推理,然后看到的这个概念,稍微了解了下,比较有意思也比较有意义,所以记录下 写的比较好留着以后继续参考的文章https://www.zhihu.com/column/p/347194251 描述 总而言之,我们定义事件A的概率为P(A),事件B的概率为P(B),B发生的情况下A发生的概率为P(A|B) 那么对…
使用OpenCv+Arduino实现挂机自动打怪 最近在玩某网游,练级十分枯燥和缓慢,就是挂机刷刷刷,所以研究一下自动化,找了个可以原地挂机刷怪的职业,然后用OpenCv检测技能冷却,冷却好了通过串口通知Arduino按下模拟键盘按键释放技能 大概流程如下: OpenCv定时扫描屏幕->对技能区域截图->对比预设图判断技能冷却->…
内存泄露是Javaer听到最多的关于内存的事了,这篇文章就来谈谈这件事。 内存泄露与资源泄露 什么是泄露?泄露在计算机语境下,通常指的是某个资源无法被访问,也无法被释放。 内存泄露一般发生在某个对象的引用丢失,无法再访问到该引用,但是该引用却依旧引用着某个对象,导致这个对象无法回收,最终导致内存溢出OOM。 资源泄露一般发生在连接池,IO流等场景,…
TransmittableThreadLocal解决线程池变量传递以及原理解析
TransmittableThreadLocal解决线程池变量传递以及原理解析 介绍 TransmittableThreadLocal是alibaba提供的一个工具包中的类,主要作用就是解决线程池场景下的变量传递问题。继承自InheritableThreadLocal,我们知道 InheritableThreadLocal解决了主线程与子线程之间的…