Tomcat日志catalina.out自动分割(linux)

Tomcat服务器长时间运行,catalina.out文件越来越大,会导致服务器io性能降低。虽然tomcat有默认的日志分割功能,能每天自动生成类似catalina.2018-10-08.log的文件,但是默认catalina.out文件却一直增长,到一定大小时很占磁盘空间,影响性能,且会报错。

阅读全文

JVM系列(一):JVM内存组成及分配

按照官方的说法:

Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。在JVM中堆之外的内存称为非堆内存(Non-heap memory)。

可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。

阅读全文

JVM线上故障排查记录

任务停留在异常阶段

  1. 时间:2018-05-13
  2. 现象:部分runtime任务莫名其妙在消费后停留在“初始化”阶段,部分停留在“数据获取中”阶段。

阅读全文

JVM优化参数

-server:开启服务端模式。

  1. -client、-server这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能。

阅读全文

Java服务程序CPU飙升排查,找出死循环代码

windows环境下CPU飙升问题

线上某台runtime机器(windows Server)cpu报警,这种情况初步就是代码里面死循环了,先把机器下线了保证不再有新的任务分配进来,然而cpu使用依然不降这是正常的因为程序未结束死循环一直在运行。

阅读全文

ApacheTomcat指定启动依赖的Java版本

项目原来使用的jdk版本位1.7,导致机器上很多tomcat都是依赖jdk1.7版本。现在部分项目需要升级jdk1.8,则单独指定启动jdk路径

1. windows环境

找到bin下的setclasspath.bat/catalina.bat文件,在文件的开始处添加如下代码:

阅读全文

CentOS7下安装配置MySQL

1.准备资源

  • 下载MySQL源安装包
1
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

阅读全文

Java开发必须掌握的线上问题排查命令

作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯。。。),所以我们需要借助一些常用命令来查看运行时的具体情况,这些运行时信息包括但不限于运行日志、异常堆栈、堆使用情况、GC情况、JVM参数情况、线程情况等。

阅读全文