Pruebas de rendimiento: monitoreo y ajuste de Tomcat: sistema de estructura Tomcat

Tomcat fue desarrollado originalmente por James Duncan Davidson, arquitecto de software de Sun. Más tarde ayudó a convertirlo en un proyecto de código abierto y Sun contribuyó a la Apache Software Foundation. El servidor Tomcat es un servidor de aplicaciones web gratuito y de código abierto. Es un servidor de aplicaciones liviano y se usa comúnmente en sistemas pequeños y medianos y situaciones donde no hay muchos usuarios de acceso simultáneo. Es la primera opción para desarrollar y depurar JSP. programas. Para un principiante, puede pensarlo de esta manera: cuando el servidor Apache está configurado en una máquina, Tomcat es una extensión del servidor Apache, pero se ejecuta de forma independiente cuando se ejecuta, por lo que cuando se ejecuta Tomcat, en realidad actúa como una extensión de el servidor Apache. Apache se ejecuta de forma independiente como un proceso separado.

Este capítulo presenta principalmente las siguientes partes:

  • Sistema estructural Tomcat.
  • Monitoreo de Tomcat.
  • sintonización de tomcat
  • ajuste de JVM
  • Análisis de archivos de registro

[Sistema de estructura Tomcat]

Antes de presentar el monitoreo y ajuste de Tomcat, primero presentemos el sistema estructural de Tomcat, que generalmente incluye: contexto, conector, host, motor, servicio, servidor y oyente . Como se muestra en la Figura 11-1.

Figura 11-1 Sistema estructural Tomcat

Estos componentes se configuran principalmente mediante el archivo server.xml. De forma predeterminada, el archivo server.xml contiene principalmente el siguiente contenido de configuración.

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost"? 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>
</Engine>
</Service>
</Server>

1) Contexto

Un contexto es un conjunto de elementos internos, llamado contenedor. Al representar una única aplicación web, Tomcat crea automáticamente una instancia y configura cierta información estandarizada al cargar la aplicación. Las propiedades definidas en el archivo \WEB-INF\web.xml también se procesan y utilizan en la aplicación como parte de la configuración.

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

 

2) Conector

Los conectores se utilizan para manejar la comunicación con los clientes. Tomcat admite una variedad de conectores, como el conector HTTP y el conector AJP que utilizamos con más frecuencia.

De forma predeterminada, Tomcat se ha configurado con un conector HTTP y el número de puerto es 8080, que de forma predeterminada es la dirección URL http://localhost:8080. Cabe señalar que todas las aplicaciones se completan a través de una única instancia de esta conexión. Al enviar una solicitud, se crea una instancia de un hilo y este hilo permanece activo en el conector mientras dure la solicitud.

ConnectionTimeout representa el tiempo de espera de la conexión. El valor predeterminado es 20000, lo que significa que si no hay actividad en la sesión dentro de 20000 segundos, la conexión finalizará. RedirectPort representa el número de puerto 8443 para la transmisión SSL de socket seguro.

Por lo general, también verá conectores AJP en el archivo de configuración. Si procesa algunas páginas web dinámicas y permite que el servidor HTML puro procese solicitudes de páginas estáticas, esto puede mejorar la eficiencia del procesamiento de solicitudes, pero ahora generalmente se usa menos porque ahora El servidor Tomcat en sí es muy rápido, por lo que si no necesita este conector, puede comentarlo.

3) Anfitrión

El host representa el host definido, que se utiliza para asociarse con el servidor Tomcat. Por supuesto, la forma de contactar está determinada principalmente por las reglas de mapeo entre el nombre de dominio y la dirección IP. Un servidor puede definir varios hosts. Por ejemplo, si se ha registrado el dominio http://chuansinfo.com , se pueden definir nombres de host como w1.http: //chuansinfo.com y w2.http: //chuansinfo.com . .

El nombre de host predeterminado de Tomcat es localhost. La asociación entre localhost y su computadora se logra a través de un registro. Este registro está escrito en el archivo C:\\Windows\\System32\\drivers\\etc\\hosts.

El parámetro "appBase" en el Host define la ubicación del directorio donde se encuentra la aplicación de publicación Ixin. Cuando usamos la URL externamente para acceder al servidor, en realidad accedemos directamente al directorio correspondiente a appBase. Tome la configuración del archivo server.xml anterior como Por ejemplo, si la dirección URL ingresada es http://localhost:8080, entonces la dirección de acceso equivalente es el archivo de índice en el directorio http://localhost:8080/ webapps.

El parámetro "unpackWARs" en Host indica el método de procesamiento de archivos WAR. Si se establece en "true", significa que si el archivo WAR se coloca en el directorio appBase, Tomcat lo expandirá automáticamente a un archivo normal; si se establece en " false" ", la aplicación se ejecutará directamente desde el archivo WAR, lo que afectará la velocidad de ejecución porque el servidor Tomcat primero debe descomprimir el archivo WAR antes de ejecutarlo.

Si el parámetro "autoDeploy" en el Host está configurado en "verdadero", significa que el programa ubicado en el directorio appBase se implementará automáticamente.

4) motor

El motor pertenece al contenedor global del motor. Principalmente abstrae todas las aplicaciones en los contenedores del motor global de diferentes JVM en clústeres, lo que les permite comunicarse entre sí entre diferentes JVM, lo que permite la sincronización de sesiones y la implementación del clúster. El motor se utiliza para procesar todas las solicitudes en el conector y devolver los resultados de la respuesta al cliente. Por supuesto, puede haber varios conectores.

El contenedor del motor contiene uno o más componentes del Host. El contenido de cada componente del Host se presenta en el contenido anterior. Cada componente del Host es equivalente a una máquina virtual. El motor del motor también tiene un contenedor, que es la interfaz principal del contenedor y las solicitudes del conector se pasan a través de esta interfaz principal.

Los componentes principales del contenedor Engine incluyen: componente Host, componente AccessLog, componente Pipeline, componente Cluster, componente Realm, componente LifecycleLister y componente Log.

5) Servicio

El componente de Servicio puede verse como una abstracción de diferentes servicios en Tomcat, vinculando uno o más conectores a un motor. El servicio de configuración predeterminado de Tomcat es Catalina. En circunstancias normales, no modificaremos ni definiremos el Servicio.

El componente Servicio incluye dos tipos de componentes: varios componentes Conectores y componentes Ejecutores. El componente Conector es responsable de monitorear las solicitudes de los clientes en un determinado puerto. Diferentes puertos corresponden a diferentes Conectores. El componente Ejecutor proporciona un grupo de subprocesos en el nivel de abstracción del Servicio, lo que permite que los componentes del Servicio compartan el grupo de subprocesos.

6) servidor

El componente del servidor puede verse como una abstracción de la instancia en ejecución de Tomcat: es el componente de nivel superior y puede contener uno o más servicios.

El componente Servidor contiene 6 componentes de escucha: escucha AprLifecycleListener, escucha JasperListener,
escucha JreMemoryLeakPreventionListener, escucha GlobalResourcesLifecycleListener, escucha ThreadLocalLeakPreventionListener y escucha NamingContextListener. También incluye componentes GlobalNamingResources, componentes ServerSocket y componentes de servicio.

7) Oyente

El oyente es un objeto Java
controlado mediante la implementación de la interfaz org.apache.catalina.LifecycleListener. El oyente se utiliza principalmente para escuchar la información de solicitud enviada por el cliente y puede manejar los siguientes eventos específicos.

● AprLifecycleListener

Este oyente puede escuchar muy bien APR (Apahce Portable Runtime), y la biblioteca APR puede mejorar mejor el rendimiento del servicio Tomcat en el sistema operativo.

● jasperlister

JSP Listener Es un motor JSP. Este oyente puede recompilar documentos JSP actualizados.

● JreMemoryLeakPreventionListener:

Este oyente se utiliza principalmente para manejar situaciones que pueden provocar pérdidas de memoria.

● GlobalResourcesLifecycleListener:

Principalmente responsable de escuchar y gestionar la asociación entre la creación de instancias y la interfaz global de nombres y directorios de Java (JNDI).

● ThreadLocalLeakPreventionListener:

Similar al
oyente JreMemoryLeakPreventionListener, también se utiliza para manejar pérdidas de memoria.

Lo anterior describe el sistema estructural de Tomcat. Introduzcamos el principio de funcionamiento de Tomcat. El principio de funcionamiento de Tomcat se muestra en la Figura 11-2.

Figura 12-2 Principio de funcionamiento de Tomcat

Los pasos específicos de cómo funciona Tomcat son los siguientes:

1. Cuando el usuario hace clic en la página web, el cliente enviará la solicitud al puerto local 8080, que será obtenida por el conector Coyote HTTP/1.1 escuchando allí.

2. El Conector pasa la solicitud al Motor del Servicio donde se encuentra para su procesamiento y espera la respuesta del Motor.

3. El motor obtiene el recurso solicitado, como index.jsp, y coincide con todos los hosts virtuales.

4. El motor coincide con el host llamado localhost (incluso si no puede coincidir, la solicitud se entregará al host para su procesamiento, porque el host está definido como el host predeterminado del motor). El host llamado localhost obtiene la información del El recurso solicitado, como /test/index.jsp, coincide con todos los contextos que posee. El Host hace coincidir el Contexto con la ruta /test (si no puede coincidir, la solicitud se entrega al Contexto con el nombre de ruta " " para su procesamiento).

5. El contexto con ruta="/test" obtiene request/index.jsp y encuentra el servlet correspondiente en su tabla de mapeo. El contexto coincide con el Servlet cuyo PATRÓN de URL es *.jsp, correspondiente a la clase JspServlet.

6. Construya el objeto HttpServletRequest y el objeto HttpServletResponse y llame a doGet () o doPost () de JspServlet como parámetros. Ejecutar lógica de negocios, almacenamiento de datos y otros procedimientos.

7. El contexto devuelve el objeto HttpServletResponse después de la ejecución al Host.

8. El host devuelve el objeto HttpServletResponse al motor.

9. El motor devuelve el objeto HttpServletResponse al conector.

10. Connector devuelve el objeto HttpServletResponse al navegador del cliente.

Finalmente, me gustaría agradecer a todos los que leyeron atentamente mi artículo. Mirando el aumento de fans y atención, siempre hay algo de cortesía. Aunque no es algo muy valioso, si puedes usarlo, ¡puedes llevarlo directamente!

Documento de entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista provienen de los últimos materiales de entrevista de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y algunos jefes de Byte han dado respuestas autorizadas. Después de terminar esto set Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.
 

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/jiangjunsss/article/details/133102090
Recomendado
Clasificación