年终总结

很久没有写博客了,上一篇大概是在月初,这次算是对过去进行总结,准备迎接新的一年。 我不是很会写博客,纯粹是附庸风雅。 2018年 今年是从学校走向工作岗位的第一年,也是第一个年终总结。 学校 感谢张健全老师,今年年初带我去一个初创公司做官网,现在看自己的代码很 LOW ,但当时已经算班上很 NB 的了,……

阅读全文

迁移到 ubuntu18 的问题及配置

今天终于下定决心安装了 Ubuntu 系统,将新系统配置成自己熟悉的模式是需要很长的一段时间,更何况是双系统。下面是我遇到的问题,经过搜索与尝试并解决。 执行关机或者重启时卡死 在卡死后强制关机再启动后我去查了一下系统日志,发现是显卡驱动的问题,因为我的电脑是双显卡,一个是 Intel 的核显,另一个是 NVIDIA 的 GTX……

阅读全文

总结

有段时间没有写博客了,因为我在思考如何去写好一篇技术性文章,而不是随性所欲、天马星空似的。以前写的很多博客真的是太潦草,这就和 CSDN 那样一篇文章复制来复制去的不管什么页面样式乱了之类的,总之就是自己技术不到家,分析的深度也不过。看了会有很多感慨。只要死不了就不能停止学习新知识。 工作上……

阅读全文

使用 psi-probe 监控 Tomcat

psi-probe 是一款非常强大的开源 Tomcat 监控工具,使用时可以点击这里下载 配置用户: 在 tomcat/webapps/docs/deployer-howto.html 文档的 manager 下有说明 conf/tomcat-user.xml 1、添加用户 <role rolename="ahian"/> <role rolename="manager-gui"/> <role rolename="manager-status"/> <user username="ahian" password="123456" roles="ahian,manager-gui,manager-status"/> 2、在 conf 文件夹中新建 Catalina/localhost/manager.xml 并编辑 1 2 3 4 5 6 7 8 <?xml version="1.0" encoding="UTF-8"?> <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1"/> </Context> 3、将 probe.war 包拷贝到 webapp 下,启动 tomcat 4、访问 localhost:8080/probe……

阅读全文

Tomcat 远程 Debug

JDWP 协议介绍 JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。 详请参考此文。 远程 Tomcat 服务器配置 修改启动文件 1 vi bin/startup.sh 在启动命令中添加启动参数 jpda exec "$PRGDIR"/"$EXECTABLE" jpda start "$@" 修改 catalina 文件(主要配置) 1 vi bin/catalina.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 if [ "$1" = "jpda" ] ; then if……

阅读全文

jstack 死循环和死锁定位

jstack 是用来查看线程的命令 1 jstack [option] <pid> 先来看看线程的状态(官方文档) New Runnable Blocked Waiting Timed_Waiting Terminated 下面是 java 线程状态转化 代码模拟 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 @RestController public class CpuController……

阅读全文

jmap & mat 内存溢出

模拟内存溢出 S0 和 S1 同时只会有一个使用,另一个是空的。 Metaspace 中主要存放 class 和 methods 等 模拟溢出的环境 堆内存溢出:通过不断地创建对象来将堆内存填充满 非堆内存溢出:通过继承 ClassLoader 配合 asm 工具来动态的创建类,直到将非堆内存填充满。这个代码可以点击这里查看 将启动的 VM 参数调小,方便快速实现效果。 1 2 3 4 5 6 7……

阅读全文

JVM 常用参数查看

JVM 参数 标准参数 -X 参数 -XX 参数 标准参数 1 2 3 4 5 6 7 8 -help -server -client -version -showversion -cp -classpath ... X 参数 1 2 3 -Xint:解释执行 -Xcomp:第一次使用就编译成本地代码(速度比慢) -Xmixed:混合模式,JVM 自己决定是否编译成本地代码 例如: java -Xint - version ---------------------- output: java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, interpreted mode) XX 参数 Boolea……

阅读全文

周总结(8.13-8.19)

完成 jmeter 的 PPT 整理 主要学习缓存方面的内容,在近期会整理成文章。 学习 julia 争取成为 Julia 的布道者……

阅读全文

周总结(7.30-8.4)

月末月初,总的来说这一周过得很匆忙,30号下午到的北京,31号体检,1号入职,这时已经是周三了,花了几个小时把环境搭好,熟悉了工作环境,和那层楼的保安比较熟,因为差不多算是老乡,在外打拼都挺不易的,同事对工作都很热情,水平都很高,注重底层的知识,头一次见到大早上一群人讨论 HashMap 和 多线……

阅读全文