NginxLNMT动态网站

Nginx + Tomcat

配置 Nginx proxy 负载均衡

1
2
3
4
5
6
7
8
9
10
11
upstream java_prod {
server 192.168.56.20:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://java_prod;
include proxy_params;
}
}

JVM故障排查思路

  1. jps获取java进程的PID。

  2. jstack pid >> java.txt 导出CPU占⽤⾼进程的线程栈。

  3. top -H -p PID 查看对应进程的哪个线程占⽤CPU过⾼。

  4. echo “obase=16;989”|bc 将线程的PID转换为16进制。

  5. 在第⼆步导出的java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。

  6. 分析负载⾼的线程栈都是什么业务操作。优化程序并处理问题。

1
2
3
4
5
6
7
8
#最⼤线程数
maxThreads="600"
#初始化时创建的线程数
minSpareThreads="100"
#⼀旦创建的线程超过这个值,Tomcat就会关闭,不再需要的socket线程。
maxSpareHtreads="500"
#指定当所有可以使⽤的处理请求的线程数量都被使⽤时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
acceptCount="700"