Skip to content
Permalink
Browse files

feat: 0609 updates

  • Loading branch information...
alterhu2020 committed Jun 9, 2019
1 parent 135d9b4 commit efc21e77be7d74c1c21b88a10ec09e6ae39088a3
Showing with 109 additions and 3 deletions.
  1. +6 −3 docs/.vuepress/sidebar.js
  2. +87 −0 docs/blog/2019/06-02-what.md
  3. +9 −0 docs/blog/2019/06-09-what.md
  4. +7 −0 docs/blog/video/chernobyl.md
@@ -12,6 +12,8 @@ module.exports ={
title: '2019年归档',
collapsable: false,
children: [
'2019/06-09-what',
'2019/06-02-what',
'2019/06-01-what',
'2019/05-31-what',
'2019/05-29-what',
@@ -48,6 +50,7 @@ module.exports ={
collapsable: true,
path: '/blog/video/',
children: [
['video/chernobyl','【美剧】切尔洛贝利'],
['video/the-thunder','【大陆剧】破冰行动'],
['video/game-of-the-thrones','【美剧】权利的游戏(终结篇)']
],
@@ -57,13 +60,13 @@ module.exports ={
collapsable: false,
children: [
['https://mybatis.plus/','【后端】Mybatis Plus'],
['http://www.ruanyifeng.com/blog/','【前端】阮一峰博客-前端'],
['https://www.jianshu.com/u/4ca93d60a9fe', '【前端】IT晴天-前端'],
['http://www.ruanyifeng.com/blog/','【前端】阮一峰博客'],
['https://www.jianshu.com/u/4ca93d60a9fe', '【前端】IT晴天'],
['https://github.com/vuejs/awesome-vue','【前端】awesome vue'],
['https://ionicframework.com/docs/components','【前端】Ionic Vue Components'],
['https://github.com/vueComponent/ant-design-vue-awesome','【前端】awesome ant-design-vue'],
['https://github.com/ulivz/awesome-vuepress','【前端】awesome-vuepress'],
['https://tool.lu/', '【其它】程序员的工具集(国人)']
['https://tool.lu/', '【其它】程序员的工具集']
]
}
]
@@ -0,0 +1,87 @@
---
title: 6月2日整理
---

## 生成环境java内存占用很高排查 (尚未解决)

- 命令`top`查看对应的java进程的`pid`,记录下该数值(16066)

- 定位线程问题(通过命令查看16066进程的线程情况),命令:`ps p 16066 -L -o pcpu,pmem,pid,tid,time,tname,cmd`

- 输出堆栈信息,将PID为16066的堆栈信息打印到jstack.log中,命令:`jstack -l 16066 > /logs/jvm/jstack.log`

> jvm运行时会生成一个目录hsperfdata_$USER($USER是启动java进程的用户),在linux中默认是/tmp。目录下会有些pid文件,存放jvm进程信息。
jps、jstack等工具读取/tmp/hsperfdata_$USER下的pid文件获取连接信息。jstack报错:Unable to open socket file。是因为这个java进程的pid文件删除了。
为什么会被删除呢?这是因为linux操作系统为了防止/tmp目录文件过多,有个删除管理机制:tmpwatch。

查看关键配置`/etc/cron.daily/tmpwatch`

```sh
flags=-umc /usr/sbin/tmpwatch "$flags"
-x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix
-x /tmp/.Test-unix 240 /tmp /usr/sbin/tmpwatch "$flags" 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?};
do if [ -d "$d" ]; then /usr/sbin/tmpwatch "$flags" -f 720 "$d" fi done
```
系统每天会用tmpwatch命令检查并删除 /tmp 下超过240小时未访问过的文件和目录。

### 解决办法
修改tmpwatch设置
排查对应的/tmp/hsperfdata_*的目录,让jvm自己来管理,保证jps,jstat等命令可用。
修改`/etc/cron.daily/tmpwatch`:

```sh
/usr/sbin/tmpwatch "$flags" -x /tmp/hsperfdata_* -x /tmp/.X11-unix -x /tmp/.XIM-unix
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp
```


## idea占用内存太高

### 参考

1. https://blog.csdn.net/zzzgd_666/article/details/81126822


- 首先修改和idea64.exe文件同目录的idea64.exe.vmoptions文件(32位的文件名为idea.exe.vmoptions),开启server模式并加大最大内存,内容如下:

```
# custom IntelliJ IDEA VM options
-server
-Xms1825m
-Xmx1825m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
```

- 点击 File -> Invalidate Caches / Restart...菜单,然后点击 Invalidate and Restart按钮清空并重建索引,然后重启。再次启动程序之后,会首先重建索引和缓存。


## jackson 反序列化报错 `InvalidDefinitionException: Cannot construct instance of `com.xxx`, problem: `java.lang.NullPointerException`

> jackson 反序列化的时候,对象需要有一个默认方法,否则无法构建对象

## navicat premium 激活

参考: https://www.jianshu.com/p/5f693b4c9468


## Unit测试中`ThreadPoolTaskExecutor`中任务退出

> 因为@Test中的主线程已经退出,所以其他的异步线程池不能继续进行。

## Dell 选择U盘启动

> 参考文档: http://www.udaxia.com/upqd/11688.html
@@ -0,0 +1,9 @@
---
title: 6月9日整理
---

## Win10整理工具

- 工具地址: http://www.thewindowsclub.com/

D
@@ -0,0 +1,7 @@
---
title: 切尔洛贝利
---

## 推荐一步美剧

只有两个字,**震撼**

0 comments on commit efc21e7

Please sign in to comment.
You can’t perform that action at this time.