2019年中总结

不知不觉,已经是2019年的六月了。

看看年初的立得目标,只完成了跳槽加薪,练歌和减肥都没有实现,练歌这个主要还是过年回家的影响比较大,算是冲动之下的决定,其实自己并不是一个很需要这样放松的一个人,或者说这样的群体活动带来的愉悦感,对我来说,不是必需品。

至于减肥没成功,就是因为懒,没有理由。

这半年,生活上没有太大变动,主要是工作上起伏比较多,本次年中总结,也主要是这方面的总结、复盘。

其实在平时自我驱动式的学习中,很容易陷入困境,失去目标,半途而废,这也是导致这半年来,总有懈怠的想法产生的原因。相对的是,工作上遇到的问题,反而更容易提升自己。

最近一直在填坑,线上问题多多,但是成长的很快。抛开自己的虚荣心,或者“偶像包袱”,以前的自己,更多的还是纸上谈兵,真的遇到问题,还是一脸懵逼。

简单罗列一下最近遇到的问题:

  • 数据库索引问题
  • dubbo线程池爆满
  • 线上fgc频繁

数据库索引问题

以前对于索引的认知,浅薄的很,当然现在也谈不上多深刻🥺,等我读完【高性能MySQL】应该会更好些。

当mysql单表达到500万时,性能就会受到影响了,目前线上很多表都是300万+,如果一条查询sql,没用到索引,那use time 非常可怕。

所以再用以前模糊的概念去解决现在的问题,肯定是不可行的了,比如,哎这个走没走索引,这样加索引应该行吧,等等

现在我必须及其明确的决断出当前应该怎么做,怎么写sql,怎么加索引。

你觉得order by id asc 和 order by id desc 在效率上有区别吗?

没趟过坑,真的不知道,在mysql-5.7,asc就是比desc慢好多,肉眼可见的慢。

鉴于对mysql的认知还是很浅薄,还是少说一些,等我更明白时,再去讲讲。

dubbo线程池爆满

平心而论,我对dubbo并不熟悉,对于zookeeper的选举算法一无所知,但是就是不想学,可能跟上家公司用的springcloud有关系吧,可能后面这种想法会改变吧。

dubbo线程池配置max=2000,线上查看active=2000,现象线程池爆满,导致大量服务不可用。

解决办法:导出线上内存快照,通过jvisualvm分析,发现1600+线程都在等待数据库连接,遂调大数据库连接池大小,问题解决。

其实这类问题,都是共性问题,善用工具分析就可以发现问题。

线上fgc频繁

fgc的原因有很多种,但是一看到fgc,就想到的有这几个:

  • -Xmx -Xms -Xmn 太小
  • 内存泄露
  • meta space 不足(jdk1.8+)
  • io流未关闭

这些都是有迹可循的,首先看看jvm配置的是不是有问题,看看服务器的状态,top一下,是不是内存用的很多,swap很多,然后dump一份文件出来,先把服务重启一下,让其可用,接着jvisualvm或者mat分析一下,看看那些对象用的多啊,一般来说String会比较多,但是一些奇怪的对象比较大、多的话,就容易发现问题。

如果发现是配置的堆内存真的很小,-Xmx512M这类的,那就加大。

其实如果是内存泄露的话,那么肯定就会OOM了,但如果一直也没OOM,就是fgc比较频繁,说明还是可以回收的,那么就需要看一下,是不是大对象很多,经历了多次ygc,晋升到老年代还是长时间没被回收,可能就是在进行比较耗时的操作,调用第三方接口,下载文件等等。

meta-space之所以出现,就是因为以前的永久代内存经常不够用或发生内存泄露,爆出异常java.lang.OutOfMemoryError: PermGen,所以1.8移除了永久代。但这并不代表,meta-space就不会引发OOM,实际上它还是受到服务器的物理内存的管控的,所以不要忽略这个问题。

流未关闭,这个是人的问题,try with resource 大行其道,没理由不用它。

以上就是最近遇到的问题,终于不再只会夸夸之谈,可以解决这些问题了。


但促使我写下年中总结的并不是这些,而是今早在微信读的一篇文章。

我三年开发经验,从字节跳动抖音组离职后,一口气拿到15家公司Offer,薪资再一次直线上涨~

这不是一篇水文,会在文末让你关注某位大佬,领取16G成为架构师的资料。
文中的主人公,没有简单的描述了面试中的题,也不是罗列的一些知识,而是记录了整个的想法和准备的过程,以及一些心得体会。

先说结论:

比你优秀的人,还比你努力

是实名羡慕了,佩服。

主人公,很清晰得到认识到自己现阶段最需要的是什么,并且去做了,学英语、锻炼、刷题…

我羡慕他的学历、履历,但最服的还是这种高度自律的能力。抖音加班很晚,每天坚持早上半小时运动,晚上半小时运动,一小时刷题。

这些东西,正式目前我最需要的,也可以说以后也是最需要的。

身体真的是自己的,熬夜、通宵、久坐,真的很伤身。

鉴于最近加班不是很多,我决定:

  • 每天早上、晚上各抽出半个小时锻炼身体
  • 每天晚上抽出一个小时+学习

不做行动的矮子!!!