https://www.cnblogs.com/f-ck-need-u/p/8120008.html#1-web- "El gato de Long Shuai"
1. Modo de trabajo de Tomcat (bio, bio, apr)
Cambiar el modo de trabajo también es parte del ajuste, aquí puede hacer coincidir los parámetros ajustados (rendimiento, etc.) desde la vista de Jmeter.
Puede ver qué modo se está utilizando actualmente en http://192.168.26.138:8080/manager/status.
También puede ver qué modo se usa al final del registro de catalina.out después de que se completa el inicio.
1.1 Modificar server.xml para cambiar el modo de trabajo (por escribir)
Modo nio predeterminado de la versión 8.5
protocol="HTTP/1.1"
Ajustar al modo nio2 y modificar el valor del protocolo
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443" />
Ajustar al modo apr
#安装apr环境 。 注意centos8没有tomcat-native源,需要编译安装
yum -y install apr apr-devel tomcat-native
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" />
Dos, tomcat múltiples instancias
Para ejecutar varios tomcats en el mismo servidor, el proceso de implementación es el siguiente:
tar -xf apache-tomcat-8.5.63.tar.gz
cp -r apache-tomcat-8.5.63/ tomcat_8081
cp -r apache-tomcat-8.5.63 tomcat_8082
sed -i.bak 's#8080#8081#g' tomcat_8081/conf/server.xml
sed -i.bak 's#8005#8006#g' tomcat_8081/conf/server.xml
sed -i.bak 's#8009#8010#g' tomcat_8081/conf/server.xml
sed -i.bak 's#8080#8082#g' tomcat_8082/conf/server.xml
sed -i.bak 's#8005#8007#g' tomcat_8082/conf/server.xml
sed -i.bak 's#8009#8011#g' tomcat_8082/conf/server.xml
mv tomcat_808* /application/
#分别启动另外两个实例8081和8082:
/application/tomcat_8081/bin/startup.sh
/application/tomcat_8082/bin/startup.sh
ss -naltp | grep java
echo "tomcat_8081" > /application/tomcat_8081/webapps/ROOT/index.jsp
echo "tomcat_8082 ..." > /application/tomcat_8082/webapps/ROOT/index.jsp
Tres gatos machos:
3. Caso de falla de Tomcat-carga alta (*)
La primera versión:
3.1 vmstat descubre la alta carga causada por la CPU o el disco
Mire r y b debajo de los procesos de la izquierda.
r Un número mayor significa que el uso de la CPU del sistema es mayor
b Un número mayor significa mayor io de disco.
[root@lvs1-138 conf]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 1024 330348 20 803316 0 0 1 6 62 63 0 1 99 0 0
0 0 1024 330308 20 803316 0 0 0 0 272 292 0 1 99 0 0
0 0 1024 330168 20 803316 0 0 0 0 248 280 0 1 99 0 0
0 0 1024 329920 20 803316 0 0 0 0 260 270 0 1 99 0 0
0 0 1024 330084 20 803316 0 0 0 0 284 269 0 2 98 0 0
3.2 ps aux, htop ver específicamente el proceso pid causado
3.3 iotop muestra el pid de estado io de cada proceso
iotop -o #只显示在进行读写的进程
3.4 jps cooperan con top -p para ver el proceso de Java
pstree -p:
130923 es el proceso, la pila detrás es el hilo
jps -lvm
pstree -p
#这个pid是java进程的pid
top -p 130923 # 只有进程显示 -p指定pid , -H 显示进程对应线程的信息
top -Hp 130923 #进程 线程都显示 ,然后看具体是那个线程出了问题,占用CPU啥的
3.5 Convierta la identificación del hilo en cuestión a hexadecimal.
130923 es el proceso. 130924 es el hilo conductor.
echo 'obase=16;130924' | bc
1FF6C
3.6 id de proceso de jstack java
Jstack java process id filtra el id hexadecimal del hilo de java y se comunica con el desarrollo
jstack 130923 | grep -i 1FF6C -A 10
linea divisoria= Lo anterior son los primeros 4 pasos, lo siguiente son 5 6 7 pasos
3.7 jmap (muestra información de Java JVM)
jmap (muestra información de java jvm) jmap -heap java process id muestra el uso de memoria de jvm
与jvm相关的 jmap 导出或显示jvm信息
显示:显示jvm使用情况一共多少 ,使用多少,剩余多少。
导出: jvm内存信息数据等等导出到磁盘
jmap -dump 导出jvm内存内容
#jmap -heap javaPid
jps -lvm
#java jvm使用率,后面用来做自定义监控
jmap -heap 130923
La cifra anterior analiza principalmente los porcentajes, 67% utilizado, 17% utilizado,
3.8 Exportación de contenido de memoria JVM
# jmap 导出jvm内存的内容
jmap -dump:format=b,file=/root/tmpFile/tomcat.bin 130923
然后将其下载到window,使用java mat进行分析
3.8 Analizar a través de la asistencia de I + D de Java mat (familiar)
https://www.cnblogs.com/liuchuanfeng/p/8484641.html "Uso de la herramienta Memory Analyzer (MAT) para analizar las fugas de memoria del proyecto Java"
FIN
En cuarto lugar, después de que tomcat configura el nombre de dominio, el acceso al nombre de dominio es normal, acceso ip 404
Se modificaron los atributos del server.xml de Tomcat.
El archivo de hosts ha sido analizado: 192.168.26.138 blog.jpress.org El
problema actual es que el acceso al nombre de dominio es normal y el acceso IP es 404. Inicialmente, cuando es localhost, es normal usar IP para acceder.
解答:想再用ip,就再添加一个<Host name>值为ip的站点
<Host name="blog.jpress.org" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="192.168.26.138" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Cinco, función de monitoreo de tomcat (abreviado)
jps -lvm
https://blog.csdn.net/daiming573/article/details/106813931/
"proceso de uso y contenido del script show-busy-java-threads"
pstree -p
pstree -a
5.1 Monitoreo de tomcat (solo escriba unas 113 líneas)
(Si comienza a informar un error en la versión 8.5, debe escribir el siguiente contenido en una línea o usar el signo \ para dividirlo)
jmxremote tomcat远程监控 有一个固定端口+2个随机端口
5.2 jconsole (omitido)
5.3 jvisualVM (略)
Y jmap, jstack