java相关

gitlab启动 / 关闭 / 重启命令:gitlab-ctl start / stop / restart

多线程问题

* 多个线程调用同一个类的同一静态方法,或者调用同一对象的同一方法,在方法中没有引用外部变量时,不会有多线程问题。

java相关_第1张图片
java相关_第2张图片

java进程cpu占用过高问题排查

1. top(显示进程所有进程,找出占用cpu高的java进程)

2. ps -mp pid -o THREAD,tid,time (找出进程下占用cpu高的线程)

3. printf "%x\n" tid (将线程id转成16进制)

4. jstack pid |grep tid -A 30 (打印线程的堆栈信息)

查看java进程启动参数命令

1. jcmd pid VM.flags

2. jinfo -flags pid

jvm常用启动参数

java -jar -Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:./logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize=512k example-0.0.1-SNAPSHOT.jar

线上服务器问题排查

https://fredal.xin/java-error-check 

线程池执行任务逻辑和线程池参数关系

corePoolSize:核心线程数量

maximumPoolSize:线程池最大数量

keepAliveTime:空间线程存活时间

workQueue:线程池缓冲队列

threadFactory:线程池创建线程使用的工厂

handler:线程池对拒绝任务的处理策略


java相关_第3张图片
线程池执行任务逻辑

单个controller请求数及响应时间参考(controller逻辑很简单,直接返回字符串):

请求数        请求耗时       平均单次请求耗时(s)

10000            2.91                 0.000291

100000          17.9                 0.000179

1000000        175.72             0.000175

你可能感兴趣的:(java相关)