33_redis Algunos problemas comunes en la práctica y las ideas de optimización (incluida la optimización de parámetros del kernel de Linux)


Básicamente, hasta ahora, todos pueden ir directamente a la empresa y construir redis.

Porque en realidad hay algunas cosas que pueden no explicar los detalles, como la configuración de algunos parámetros

Diferentes compañías, diferentes negocios, diferentes cantidades de datos pueden tener diferentes parámetros para ser ajustados

Hasta ahora, todos son casi iguales, de acuerdo con esta idea, para construir redis para soportar alta concurrencia, alta disponibilidad, arquitectura de datos masiva, implementación

Puede usar algunos de los datos existentes en la empresa, importarlos, millones, 10 millones, ingresar

Realice varias pruebas de estrés, rendimiento, referencia de redis, concurrencia, QPS, simulacros de alta disponibilidad, cuántos datos puede almacenar cada máquina y expansión horizontal para admitir más datos

Según el entorno de prueba y los datos de prueba, realice varios ejercicios para explorar algunos de los detalles más adecuados para usted.

Dijiste que confías en un conjunto de cursos para obtener todo lo que es 100% técnicamente imposible.

El maestro abre la puerta, la práctica es personal.

El único criterio para un buen curso es que a este precio, puede enseñarle algo de tecnología y arquitectura que vale la pena, que no puede aprender de otros lugares, o costará varias veces aprenderlo usted mismo. El tiempo a tientas

El valor de este curso ha alcanzado

Usted dijo que gastó cientos de dólares, compró un curso, requisitos, cursos, después de aprender, inmediatamente es una espada solitaria, directamente a la empresa puede resolver todo tipo de problemas fácilmente

En este mundo, no existe tal plan de estudios, valores razonables, para que todos puedan tener un proceso interactivo benigno muy bueno

chispa etc. cursos

Realmente aprendiendo cursos para hacer proyectos, el 100% se encontrará con muchos problemas que no esperaba. Cuando los encuentre, trataré de resolverlos primero. Si encuentra problemas, es su acumulación de experiencia.

Encontré problemas, agregue mi QQ y luego consulte conmigo, le mostraré, también es posible

chispa, búsqueda elástica, cursos de arquitectura java

70% ~ 80% de las preguntas, puedo ayudarlo a conseguirlo, puedo hacerlo

1. La bifurcación que lleva mucho tiempo conduce a un alto retraso de solicitud concurrente

Cuando RDB y AOF, de hecho, habrá un proceso de generación de instantáneas RDB, reescritura de AOF, consumo de E / S de disco, proceso secundario de la bifurcación del proceso principal

Cuando se bifurca, el proceso secundario necesita copiar la tabla de páginas de memoria de espacio del proceso primario, que también requiere una cierta cantidad de tiempo

En términos generales, si hay 1 G de datos en el proceso padre, la bifurcación puede costar unos 20 ms, si es 10G ~ 30G, costará 20 * 10, incluso 20 * 30, que son unos cientos de milisegundos

latest_fork_usec en estadísticas de información, puede ver la duración del último formulario

El QPS autónomo de Redis generalmente es de decenas de miles, y la bifurcación puede ralentizar el tiempo de solicitud de decenas de miles de operaciones a la vez, de unos pocos milisegundos a 1 segundo.

Ideas de optimización

El tiempo de la bifurcación está relacionado con la memoria del proceso maestro de redis. Generalmente, la memoria de redis se controla dentro de 10 GB, esclavo-> maestro, copia completa

2. El problema de bloqueo de AOF

Redis escribe datos en el búfer AOF, abre un sitio separado para operaciones fsync, una vez por segundo

Pero el hilo principal de redis verificará el tiempo de fsync dos veces. Si el último tiempo de fsync excede los 2 segundos, entonces la solicitud de escritura se bloqueará

cada segundo, perdido como máximo 2 segundos de datos

Una vez que fsync excede un retraso de 2 segundos, todo el redis se ralentiza

Ideas de optimización

Optimice la velocidad de escritura del disco duro, se recomienda usar SSD, no use un disco duro mecánico ordinario, SSD, mejore en gran medida la velocidad de lectura y escritura del disco

3. Retraso de replicación maestro-esclavo

La replicación maestro-esclavo puede demorar seriamente, esta vez requiere un buen mecanismo de monitoreo y alarma

En la replicación de información, puede ver el desplazamiento de la replicación maestra y esclava. Marque la diferencia para ver el retraso correspondiente.

Si hay demasiado retraso, entonces alarma

4. Tormenta de replicación maestro-esclavo

Si permite que varios esclavos realicen una replicación completa desde el maestro a la vez, se envía un gran rdb a varios esclavos al mismo tiempo, lo que hará que el ancho de banda de la red esté seriamente ocupado

Si un maestro realmente quiere montar múltiples esclavos, intente usar una estructura de árbol en lugar de una estructura de estrella

5 、 vm.overcommit_memory

0: compruebe si hay suficiente memoria; de lo contrario, solicite la memoria falla
1: permita el uso de la memoria hasta que se agote
2: el espacio de direcciones de memoria no puede exceder el intercambio + 50%

Si es 0, puede provocar que fallen operaciones como fork, y no se aplica suficiente espacio de memoria para

cat / proc / sys / vm / overcommit_memory
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory = 1

6 、 intercambio

cat / proc / version, verifique la versión del kernel de Linux

Si la versión del kernel de Linux <3,5, conjunto continuación swappiness a 0, por lo que el sistema en lugar de intercambio no oom asesino (matar el proceso)
si la versión del kernel de Linux> = 3.5, conjunto continuación swappiness a 1, por lo que el sistema no oom asesino sería más bien de intercambio

Asegúrese de que los redis no sean asesinados

echo 0> / proc / sys / vm / swappiness
echo vm.swapiness = 0 >> /etc/sysctl.conf

7, el identificador de archivo abierto más grande

ulimit -n 10032 10032

Conéctese en línea y búsquelo usted mismo, los diferentes sistemas operativos, versiones y configuraciones no son lo mismo

8 、 tcp trabajo acumulado

cat / proc / sys / net / core / somaxconn
echo 511> / proc / sys / net / core / somaxconn

 

Supongo que te gusta

Origin www.cnblogs.com/hg-super-man/p/12742131.html
Recomendado
Clasificación