Preguntas de la entrevista de operación y mantenimiento con respuestas

1. ¿Cómo darse cuenta de que el registro de acceso al nodo del proxy Nginx registra la IP del cliente en lugar de la IP del proxy?

 在nginx代理文件中怎加一行配置文件:proxy_set_header  X-Real-IP $remote_addr;

2. Kernel: nf_conntrack: tabla llena, el paquete de descarte aparece en el registro / var / log / messages ¿Cuál es la razón?

¿Causado? ¿Cómo resolver?

Este es el mensaje de error de iptables "La tabla de seguimiento de conexión está llena y se inició la pérdida de paquetes". Luego pienso en cambiar la conexión de Memcached a una conexión corta en el sitio web. Debido a que iptables registrará la información de seguimiento de cada conexión, la conexión es cerrado y cerrado con demasiada frecuencia La tabla de seguimiento de conexiones está llena y se produce la pérdida de paquetes.

Solución:

Primero, cambie el método de conexión de memcached a un enlace largo y luego modifique nf_conntrack. Existen principalmente las siguientes formas:

1. Apague el firewall

2. Aumente el tamaño de la tabla de seguimiento de iptables y ajuste los parámetros del sistema correspondientes

3. Use una mesa vacía sin agregar marcas de seguimiento

4. Elimina el módulo de seguimiento de conexiones.

3. En el entorno nginx php del sistema linux, se encuentra que el proceso PHP-FPM ocupa una alta CPU ¿Cuáles son las posibles razones y
cómo solucionarlo?

1. Seguimiento de procesos

top // Encuentra el PID del proceso con un alto uso de CPU

strace -p PID // Proceso de seguimiento

ll / proc / PID / fd // Compruebe qué archivos está procesando el proceso

Habrá una modificación sospechosa del código PHP, como: file_get_contents no establece un período de tiempo de espera.

Dos, asignación de memoria

Si el seguimiento del proceso no puede encontrar el problema y luego encontrar la causa en el sistema, ¿es posible que la memoria no sea suficiente? Se dice que un PHP-CGI relativamente limpio abre alrededor de 20M-30M de memoria, dependiendo de cuántos módulos PHP se abran.

Ver el uso de memoria del proceso PHP-CGI a través del comando pmap

pmap $ (pgrep php-cgi | cabeza -1)

De acuerdo con el resultado de salida, combinado con el tamaño de la memoria del sistema, configure el número de procesos PHP-CGI (max_children).

Tres, seguimiento

Por último, también puede garantizar el funcionamiento normal del servicio mediante el seguimiento y los scripts de recuperación automática. Aquí hay algunos scripts que utilicé:

Siempre que la memoria ocupada por un proceso php-cgi exceda% 1, elimínelo

#! / bin / sh

PIDS =ps aux|grep php-cgi|grep -v grep|awk’{if($4>=1)print $2}’

para PID en $ PIDS

hacer

echo date +%F….%T>> / data / logs / phpkill.log

echo $ PID >> /data/logs/phpkill.log

matar -9 $ PID

hecho

Detecta el proceso php-fpm

#! / bin / bash

netstat -tnlp | grep “php-cgi” >> / dev / null # 2 &> /data/logs/php_fasle.log

si ["$?" -eq “1”]; luego # && [ netstat -tnlp | grep 9000 | awk '{ print $4}' | awk -F ":" '{print $2}'-eq “1”]; luego

Inicio de / usr / local / webserver / php / sbin / php-fpm

echo date +%F….%T“Memoria del sistema OOM.Kill php-cgi. Inicio del servicio php-fpm. ”>> /data/logs/php_monitor.log

ser

Detecta la ejecución de php a través de http

#! / bin / bash

estado =curl -s –head “http://127.0.0.1:8080/chk.php” | awk ‘/HTTP/ {print $2}’

if [$ status! = “200” -a $ status! = “304”]; entonces

/ usr / local / webserver / php / sbin / php-fpm reiniciar

echo date +%F….%T"reinicio del servicio php-fpm" >> /data/logs/php_monitor.log

ser

4. Un maestro con varios esclavos, la biblioteca maestra no funciona, ¿cómo cambiar a la biblioteca esclava y cómo tratar con otras bibliotecas esclavas?

1.Asegúrese de que todos los registros de relés se hayan actualizado y ejecute detener esclavo io_thread; muestre la lista de procesos en cada biblioteca esclava; hasta que vea Ha leído todo el registro de relés, significa que se ha ejecutado la actualización de la biblioteca esclava.

2. Inicie sesión en todas las bibliotecas esclavas, verifique el archivo master.info y compare y elija la que tenga la posición más grande como la nueva biblioteca maestra.

3. Inicie sesión en 192.168.1.102, ejecute stop slave; e ingrese al directorio de la base de datos, elimine los archivos master.info y relay-log.info, configure el archivo my.cnf, abra log-bin, si hay log-slaves -actualizaciones y solo lectura Para comentar, ejecute reset master

4. Cree un usuario para la sincronización y autorice al esclavo, al igual que en el quinto paso

5. Inicie sesión en otra biblioteca esclava y ejecute detener esclavo para detener la sincronización

6. Conéctese a la nueva biblioteca principal de acuerdo con el séptimo paso.

7. Ejecute el esclavo de inicio;

8. Modifique los nuevos datos maestros para probar si el esclavo se actualiza sincrónicamente.

5. El mal funcionamiento de la declaración de abandono conduce a la destrucción de datos. Proporcione ideas de recuperación y pasos prácticos.

pensamiento:

法1:  1、通过防火墙禁止web等应用向主库写数据或者锁表,让数据库停止更新。



              ##检查全备及binlog日志 ;



       2、将全备恢复;



          mysqlbinlog -d databasename mysql-bin.000014 > bin.sql



       3、将所有binlog汇总,转成sql语句,剔除drop语句,恢复数据;



          mysql -uroot -p123456 databasename < bin.sql



          (注意数据的备份,不要破坏原始数据)



       4、后续:(数据无法写入)所以无需恢复。



          5、如果是update语句(也需要停止访问)



法2:1、如果主库持续有数据写入;



     2、停止一个从库;然后在主库刷新binlog;



      3、把mysql-bin.000014恢复成bin.sql(去掉drop语句);



      4、把全备数据sql及操作前的增量bin.sql恢复到从库。



      5、停止主库;把主库刷新后的binlog解析为sql恢复到从库;



      5、切换为从库提供服务;



      #法2可能会有主键冲突等其它的问题,可以通过修改id或者延迟解决,尽量使用法1停库解决;



     #平时工作要注意数据库的权限管理及流程管理,防患于未然。

6. Por favor, dé un ejemplo práctico en producción El sitio web se abre lentamente debido a la lentitud de la base de datos.

Alta carga de base de datos, consulta lenta, hacer caso de índice conjunto

La carga de la base de datos es alta, hay consultas lentas, se analizan los registros web, puede haber rastreadores y su ip está bloqueada

  1. Matar la base de datos de manera brutal y grosera a través de kill -9 conduce a fallas de inicio de la base de datos. Proporcione métodos de solución de problemas o experiencia.

8. El ancho de banda de la sala de ordenadores IDC aumentó repentinamente de 100 M a 400 M, analice el problema y resuélvalo.

Realmente sufrí ataques DDOS (lo he encontrado varias veces, pero el impacto es raro y hay casos de extorsión de piratas informáticos).
b. El servidor interno está envenenado y una gran cantidad de tráfico saliente (el viejo recibe a la policía más de 5 veces por este problema)
c. Los elementos del sitio web (como imágenes) son robados y se promocionan en la página del portal, lo que resulta en una gran cantidad de tráfico (más de 3 alarmas recibidas)
d. Cooperación La empresa viene a capturar datos, tales como: Se proporciona interfaz de datos API a la unidad cooperativa (los amigos de la empresa cooperativa entienden esto)
e. Después de comprar el CDN negocios, la CDN toma la estación de origen (esto también ocurre muchas veces).

Para seguirme para el autoestudio, algunos aprendices están a punto de entrevistarme y encontrar un trabajo, y algunas de las respuestas de la entrevista se compilan de la siguiente manera: Quiero ver el documento, contactarme, quiero ver el video y compartir el formato de la entrevista. / 9529c
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_39418469/article/details/114777112
Recomendado
Clasificación