JVM / Tomcat / diseño común modo de sintonización base de datos y

JVM de sintonización:

1. Memoria de llamadas

(1) ajustar el tamaño de la memoria de pila

-Xms espacio mínimo montón conjunto.

conjuntos -Xmx el tamaño máximo del espacio de almacenamiento dinámico.

-XX: NewSize estableció la nueva generación de la cantidad mínima de espacio.

-XX: MaxNewSize estableció la nueva generación de espacio máximo.

-Xss: Establece el tamaño de la pila para cada hilo.

(2) El método de ajustar el tamaño del área de memoria

-XX: MetaspaceSize establece la superficie mínima de espacio metadatos. (JDK8)

-XX: MaxMetaspaceSize establece el área máxima de metadatos espaciales. (JDK8)

jsp: ver el número de puerto proceso

análisis jconsole: tamaño de la memoria

Herramientas de análisis de la memoria:

Herramienta de Memory Analyzer (MAT) es una poderosa herramienta de análisis basado en la memoria, puede ayudarnos a encontrar pérdidas de memoria y reducir el consumo de memoria.

jmap -dump: format = b, file = D: \ temp \ 07.hprof ID del proceso

 

2. Llamar el algoritmo GC

algoritmo de serie, el algoritmo de recuperación paralelo (CMS)

Tomcat optimización:

1. Optimización de la memoria

plataforma Windows en el archivo catalina.bat en el directorio bin, localice @echo off y luego añadir la siguiente línea debajo de ella declaraciones similares.

SET CATALINA_OPTS = -Xms512m -Xmx512m -Xmn125m

parámetros:

-server: Asegúrese de que el primer parámetro, el mejor rendimiento en una pluralidad de CPU

-Xms: java Heap tamaño inicial. El valor por defecto es la memoria física del 1/64.

-Xmx: java montón máxima. Las recomendaciones se establecen en la mitad de la memoria física. No exceda la memoria física.

-Xmn: generación joven (la nueva generación) del tamaño de la pila. 3 y 4 es generalmente uno de los puntos Xmx

-XX: MetaspaceSize = 128m miembros tamaño del espacio inicial, por defecto es generalmente 21m.

-XX: MaxMetaspaceSize = 256m cantidad máxima de dólares de espacio, no hay límite superior predeterminado está determinado por la memoria del sistema operativo

2. Optimización de la red

predeterminado HTTP1.1

<Puerto conector = "8080" protocol = "HTTP / 1.1" ConnectionTimeout = "20000"

redirectPort = "8443" />

Optimizar el uso de nio2

<Puerto conector = "8080" protocolo = "org.apache.coyote.http11.

Http11Nio2Protocol "ConnectionTimeOut =" 20000" redirectPort = "8443" />

3. Optimización de conjunto de subprocesos

<Puerto conector = "8080" protocolo = "org.apache.coyote.http11.

Http11Nio2Protocol" ConnectionTimeOut = "20000" redirectPort = "8443" maxThreads = "10"/>

Optimización de la base de datos:

1. optimización de la consulta: En primer lugar, podemos utilizar explicar o describir completamente (abreviatura: DESC) de comandos para analizar una declaración de información ejecución de la consulta.

2. Optimización Subconsultas: En MySQL, trate de usar JOIN en lugar de subconsultas Debido subconsultas necesitan consultas anidadas, se creará una tabla temporal cuando las consultas anidadas, construir y tabla temporal de eliminación, habrá una gran sobrecarga. , pero no crea una tabla temporal consultas de unión, por lo que la eficiencia de las sub consultas anidadas que alto.

3. Índice de Uso

Tabla 4 de descomposición:

5. Utilice el centro de la mesa: Para un gran número de tabla de consultas de unión puede crear una tabla intermedia, lo que reduce mucho tiempo debido en el momento de la petición de conexión.

6. Incrementar el campo redundante: Similar a crear una tabla intermedia, sino también para reducir el aumento de la redundancia consulta de unión.

Optimización duro:

optimización de hardware (1) Tres

1. La configuración multi-núcleo y la CPU de alta frecuencia, polinuclear puede ejecutar múltiples hilos. 2. configuración de memoria grande, mejorar la memoria, para aumentar la capacidad de amortiguación, es posible reducir el tiempo de disco I / O, lo que mejora la velocidad de respuesta. Configuración una distribución razonable de disco de alta velocidad o discos: o, mejor distribución de disco de alta velocidad I / disco puede mejorar la capacidad de operar en paralelo.

(2) la optimización de parámetros de base de datos

1.key_buffer_size: Tamaño Índice de Buffer

2.table_cache: el número de mesas abiertas de forma simultánea

3.query_cache_size y query_cache_type: el primero es un tamaño de búfer de consulta, que es un interruptor en el parámetro frente, 0 indica la memoria intermedia no se utiliza, una indicación de amortiguación, pero no puede utilizar el tampón de representar consulta SQL_NO_CACHE, 2 representa consultas establece claramente que sólo mediante el uso de buffer de memoria intermedia, que SQL_CACHE.

holguras de clasificación: 4.sort_buffer_size

(3) sub-biblioteca sub-tabla

(4) grupos de caché

Los patrones de diseño:

Crear un esquema:

patrón de la fábrica simple: la reducción de acoplamiento (DefaultAopProxyFactory) cuando se crea un objeto

Singleton patrón de diseño: hambrientos único patrón de diseño único patrón de diseño perezoso

Modo Constructor Diseño: resolver el problema: vamos a crear el código objeto separado

Solución: Constructor * (SqlSessionFactoryBuilder)

patrón estructural:

Adaptador de modo (adaptador): resolver el problema: una clase o interfaz no es adecuado para otros a usar

Solución: Añadir una clase adaptador (HandlerInterceptor)

Cadena de Responsabilidad patrón de diseño: para resolver el problema: para hacer más de un objeto oportunidad de manejar la petición, evitando así la relación de acoplamiento entre el remitente y el destinatario de la solicitud. Estos objetos juntos en una cadena, y pasan la solicitud a lo largo de la cadena hasta un objeto mangos hasta ahora.

Solución: las interfaces, clase de implementación, la cadena (InterceptorChain)

Observador patrón de diseño: para resolver el problema: uno (nivel db), los datos de los cambios menores db (capa de interfaz de usuario) en una capa, la interfaz de usuario debe saber, interfaz actualizada, el objetivo (db) cambiado observador (ui) debe yo sé.

Solución: interfaz de clase Observador Observador observador implementar

Objetivo {List <Observer> Para el cambio (lista) {}} observador notificación

Modo de decoración: la resolución de problemas: lo suficientemente funcional, la solución: la adición de una nueva clase

案例: flujoEntrada, ObjectInputStream (flujoEntrada)

patrón de diseño Proxy: para resolver el problema: el código objeto para escribir, sumar funcionalidad ampliada

Solución: Aumentar el agente, agente de la funcionalidad extendida, el código objeto proxy para llamar de nuevo

Bootstrap se basa en HTML simple, CSS, JavaScript desarrollo, intuitiva y potente marco de desarrollo front-end que hace que el desarrollo web más rápido. Ofrece elegantes especificaciones de HTML y CSS, puede producir una páginas web adaptable.

Idea SVN (proyectos de integración) vue (herramientas de edición) (marco de front-end)

 

Publicado 15 artículos originales · ganado elogios 0 · Vistas 272

Supongo que te gusta

Origin blog.csdn.net/weixin_45146962/article/details/105261523
Recomendado
Clasificación