Preguntas comunes de entrevistas de Linux, respondiendo entrevistas compartidas

conceptos básicos del sistema operativo

1. ¿Qué debo hacer si la tasa de uso de la CPU es demasiado alta? ¿Cuál es la idea de solución de problemas, cómo localizar este problema y el flujo de procesamiento?

Otros programas:
1. Use el comando superior para ordenar por uso de CPU y encontrar el proceso con el mayor uso de recursos
2. lsof para verificar qué archivos o subprocesos está usando el proceso
3. Pregúntele al desarrollador o al jefe qué tipo de negocio es Al utilizar este proceso
4. ¿Es posible aislar esta máquina sin afectar a otras empresas?
5. Luego puede finalizar o reiniciar el proceso después de aceptar y luego observar

2. Cómo ordenar en la página superior puede ver rápidamente el mayor uso de CPU del proceso

arriba
-P

3. ¿Cuáles son los códigos de estado HTTP comunes?

200 Normal
301 Redirección permanente
302 Redirección temporal
403 Denegar acceso al directorio Sin permiso Sin página de inicio
404 Página no encontrada
500 El backend del proxy inverso no tiene un servidor que responda
502 El backend del proxy inverso no tiene un servidor que responda
503 Inverso El backend del proxy no tiene servidores a los que responder

4. ¿Cuáles son los puertos comúnmente utilizados para los servicios?

SSH 22
HTTP 80
Nginx 80 1.16.0
HTTPS 443
MySQL 3306 5.7
Redis 6379 5.0
Mongo 27017 4.0
Elasticsearch 9200 9300 7.9
Kibana 5601 7.9
Tomcat 8080 8

5. Consultar comandos como CPU, memoria, tráfico, número de conexiones de archivos, etc.

CPU: tiempo de actividad máximo
Memoria: libre -h
Tráfico: iftop
Disco: df -h fdisk -l iotop
Red: netstat -lnatup

6. Ver el proceso para abrir el archivo.

ps
-ef #Ver información del proceso
lsof
-c #Mostrar los archivos abiertos por el nombre del programa especificado
-i #Mostrar procesos calificados, IPv[46][proto][@host|addr [
:svc_list|port_list]
-p #Mostrar archivos abierto por el proceso especificado pid
-u #Mostrar el proceso del UID de usuario especificado
+d #Enumerar los archivos abiertos en el directorio
+D #Acumular recursivamente los archivos abiertos en el directorio

7. Visualización en tiempo real del tráfico de red
iftop
-i
-n
-t

8. El espacio en disco no se libera después de eliminar archivos.

El archivo se elimina, pero todavía hay procesos que utilizan este archivo, por lo que es necesario finalizar el proceso ocupado.

9. ¿Cuáles son los contenidos del directorio /proc?

/proc/cpuinfo #Información actual de la CPU
/proc/meminfo #Información actual de la memoria
/proc/loadavg #Información actual de carga promedio del sistema
/proc/mounts #Información actual de la tabla de montaje del dispositivo

10. La diferencia entre raid0 raid1 raid5 raid10


La capacidad mínima 1 de RAID0
es la capacidad combinada de todos los discos La capacidad mínima 2 de RAID1
más rápida y de menor
seguridad es la mitad de todos los discos Velocidad moderada y seguridad alta La capacidad mínima 3 de RAID5 es todos los discos menos 1 La velocidad es generalmente segura Mayor rendimiento RAID10 tiene al menos 4 piezas, la capacidad es la mitad de todos los discos, la velocidad es más rápida y la seguridad es la más alta














11. ¿Qué guión escribió el caparazón?

Ideas:
1. Piense primero en la función
2. Escriba la función directamente si puede, escriba primero el nombre de la función, pero no escriba el contenido
3. Finalmente complete el contenido de la función
Referencia:
#1. Extraer código
git_pull(){ git pull xxxxx } # 2. Construir mirror docker_build(){ docker build -t } # 3. Cargar puerto docker_push(){ docker push xxxxx } # 4. Reemplazar remotamente mirror docker_deploy(){ para i en ip do ssh $i docker pull xxxxx && docker stop app && docker rm app && docker run --name app -it xx -d xxxxx done } # 5. Función principal main(){ git_pull docker_build docker_push docker_deploy


























}
principal

12. ¿Cómo comprobar el puerto de un proceso?

netstat -lnatup|grep nginx

13. ¿Cómo comprobar el uso actual del disco del sistema?

df-h

14. ¿Cómo planificar para 200 servidores?

Servidor físico:
1. Utilice kickstart+cobbler para automatizar la instalación por lotes e instalar el sistema operativo
2. Defina y planifique los servicios que se ejecutan en el servidor
3. Escriba scripts de shell para distribuir automáticamente claves SSH en lotes
4. Utilice el rol ansible para instalar Servicio por lotes
5. Use ansible para instalar componentes de monitoreo en lotes
Servidores en la nube:
1. Porque los servidores en la nube no necesitan instalar un sistema
2. Escriba scripts de shell para distribuir automáticamente claves SSH en lotes
3. Use roles ansible para instalar servicios en lotes

15. ¿Cuál es la configuración del servidor de su empresa?

Nodo de nodo: Disco de sistema
16C 32G RAID1 1T Disco de datos SATA SSD 500G sin RAID Base de datos: Disco de sistema 16C 64G RAID1 1T Disco de datos SATA RAID10 2T SSD 4 piezas Código en línea: Disco de sistema 8C 16G RAID1 1T Disco de datos SATA RAID10 1T SATA 4 piezas prometheus : Disco de sistema 8C 16G RAID1 1T Disco de datos SATA RAID10 1T SATA 4 piezas














16. AWK extrae información de registro, IP más alta, 10 IP principales

awk '{nums[$1]+=1;} END{for(i in nums){print nums[i],i}}' access_log | sort | tail

17. Escriba un script para detener el programa en ejecución.

¿Cuál es el comando de detención para desarrollar este programa? ¿O hay una dirección de interfaz de detención?
Antes de detener, asegúrese de si hay otros servicios que utilizan este programa.
Mi idea es usar primero ps y grep para averiguar el número de proceso, y luego use el comando kill Process Number para finalizar el proceso.
Finalmente, el script verifica si el programa sale de manera segura y luego proporciona un código de estado
kill $(ps -ef|grep nginx|awk '{print $2}')

servicio web

1. ¿Cuáles son los códigos de estado HTTP comunes? ¿Qué quieren decir?

200 Normal
301 Redirección permanente
302 Redirección temporal
403 Acceso denegado al directorio Sin permiso Sin página de inicio
404 Página no encontrada
499 La base de datos no respondió el tiempo de espera
500 El backend del proxy inverso no tiene un servidor que pueda responder
502 El backend del proxy inverso no tiene respuesta El servidor
503 Proxy inverso El backend no tiene un servidor al que responder.

2. ¿Cómo garantizar la alta disponibilidad del servidor proxy inverso?

Utilice keepalived VIP para garantizar una alta disponibilidad

3. Puertos de servicio de uso común http https ssh mysql redis mongo elasticsearch

http 80
https 443
ssh 22
mysql 3306
redis 6379
mongo 27017
elasticsearch 9200

4. ¿Qué componentes del servicio web has utilizado?

nginx
haproxy
gato

5. ¿Qué módulos ha utilizado Nginx? ¿Cuál es el efecto?

ngx_http_core_module Localización del módulo principal
ngx_http_rewrite_module Módulo de reescritura
ngx_http_proxy_module Proxy inverso
ngx_http_upstream_module Equilibrio de carga ngx_http_autoindex_module Módulo de
índice ngx_http_stub_status_module
Monitoreo de estado
ngx_http_access_module Lista blanca Lista negra
ngx_http_auth_basic_module Autenticación simple
ngx_http _limit_req_module solicitar límite de velocidad

6. ¿Cómo implementa Nginx el proxy inverso? ¿Cuál es la relación entre el proxy inverso y el equilibrio de carga?

Primero, el módulo de proxy inverso se usa para enviar solicitudes al grupo de direcciones del servidor backend
, luego el módulo de equilibrio de carga se usa para promediar el tráfico al servidor backend y el
proxy inverso realiza la carga de tráfico promedio al servidor backend.

7. ¿Cómo solucionar problemas de acceso lento a una página web? problema clasico

Fenómeno:
El usuario informa que la velocidad de apertura de la página web es lenta
Ideas:
1. ¿Algunos usuarios son lentos o todos los usuarios son lentos?
2. Encienda el monitoreo y verifique la carga de la memoria/CPU/disco del servidor
3. Abra ELK y verifique la clave El tiempo de respuesta de la conexión, si puede ver el patrón, como un aumento repentino en un cierto período de tiempo, o
intermitente Elimine este servidor del proxy inverso
y luego analice y solucione el problema en detalle 5.
Si la carga del servidor web es normal, pero el acceso es lento, entonces puede ser que la base de datos no pueda responder o la carga se haya vuelto alta. 6.
Al analizar el registro, se encuentra que ayer era normal. , pero hoy es lento. Puede deberse a que se ha lanzado una nueva versión del código y la declaración de la base de datos ha cambiado, lo que puede causar que el índice falle. El plan de ejecución
de la declaración lenta verifica si la declaración está indexada. Si no está indexado, puede deberse a que se ha desarrollado y publicado un nuevo código y la declaración de la base de datos ha cambiado , lo que puede provocar que el índice falle . 9. Informe los resultados del análisis de ejecución al jefe para decidir si construir un sistema adecuado. indexe o revierta la versión anterior y luego analice el problema 10. La falla de la caché de CDN provocó que la solicitud se reenviara al servidor 11. ¿Hay algún problema con la resolución de DNS?





8. ¿Cómo lidiar con los registros de Nginx? ¿Con qué frecuencia se corta?

Utilice logrotate para desplazarse y cortar registros periódicamente, una vez al día.
Utilizamos la plataforma de análisis y recopilación de registros ELK.

9. ¿Cuál es el volumen concurrente de su empresa? ¿A cuánto asciende el fotovoltaico?

Visitas a páginas PV 300.000-500.000-1,5 millones/día Ancho de banda de red pública de 100 M Caché distribuido CDN
Las visitas independientes UV solo se pueden ver en el lado de operación

10. La diferencia entre el proxy de siete y cuatro capas de nginx

El proxy de capa 4 resuelve
el número de puerto y el proxy de capa 7 resuelve los paquetes HTTP.

11. ¿Cómo limita Nginx la corriente?

Según el número de solicitudes para cada IP, límite basado en el módulo de limitación de tasa de solicitudes

12. ¿Qué algoritmos de equilibrio de carga tiene Nginx?

URL de sondeo de
peso promedio de sondeo RR IP_HASH

red

1. ¿Cuál es la diferencia entre TCP y UDP?

TCP es una transmisión confiable, con un mecanismo de retransmisión de errores, que puede garantizar que los paquetes de datos se envíen y reciban de manera ordenada y completa. Aunque es seguro, la sobrecarga de la red es alta. UDP no es confiable y no tiene mecanismo de confirmación.
Aunque no es seguro, es rápido

2. Apretón de manos de tres vías y saludo de cuatro vías

3. Si no puede hacer ping a una IP, ¿cuáles son las ideas para solucionar el problema?

IP de la red pública: verifique de abajo hacia arriba de acuerdo con el protocolo de cuatro capas TCP/IP
1. Primero verifique si el cable de red y el conmutador funcionan normalmente
2. Verifique si la IP y la máscara de subred están escritas incorrectamente
3. Haga ping a la puerta de enlace vea si es normal
4. Verifique si la configuración de DNS es correcta
5. Comuníquese con el personal de IDC para ayudar en la investigación y ver si la red en la sala de computadoras está fluctuando en la
IP de la intranet:
1. Primero verifique si el cable de red y el conmutador están funcionando normalmente
2. Verifique la IP y la máscara de subred ¿Hay un error tipográfico?
3. Haga ping a la puerta de enlace para ver si es normal
4. Verifique si hay un conflicto de IP

5. ¿Qué es la puerta de enlace y la máscara de subred?

Puerta de enlace:
a quién se envía el paquete de datos, la puerta de enlace es la dirección del enrutador
Máscara de subred:
define la clasificación de la red, distingue el bit de red y el bit de host 8/16/24/32
255.0.0.0/8
255.255.0.0 / 16
255.255.255.0/24
255.255.255.255/32
10.0.0.100/24
​​255.255.255.0

6. ¿Cómo se clasifican las direcciones IP? Escenario de aplicación

A 10.0.0.0/8 tiene menos bits de red y la mayor cantidad de bits de host
B 172.16.0.0/16
C 192.168.1.0/24 tiene la mayor cantidad de bits de red y la menor cantidad de bits de host, y cada red puede acomodar 253 hosts

7. No se puede abrir el sitio web. ¿Alguna idea para solucionar el problema?

Arquitectura tradicional
inserte la descripción de la imagen aquí
Arquitectura K8s
inserte la descripción de la imagen aquí

base de datos

mysql

1. Hable sobre el principio de replicación maestro-esclavo.

El SQL actualizado (actualizar, insertar, eliminar) de la biblioteca principal se escribe en el binlog
para iniciar una conexión desde la biblioteca a la biblioteca principal.
En este momento, la biblioteca maestra crea un hilo de volcado de binlog para enviar el contenido del registro bin a la biblioteca esclava.
Después de iniciar la biblioteca esclava, cree un subproceso de E/S para leer el contenido del registro bin de la biblioteca maestra y escribirlo en el registro de retransmisión. La biblioteca esclava también creará un subproceso SQL para leer el contenido del registro de retransmisión
. y ejecutar la lectura desde la posición ExecMasterLog_Pos.Obtener el evento actualizado y escribir el contenido actualizado en la base de datos del esclavo.

2. ¿Cuál es el motivo del retraso en la replicación maestro-esclavo?

1. La declaración de operación de la biblioteca principal es inherentemente lenta y, por supuesto, la biblioteca esclava también es muy lenta.
2. La carga del sistema de la biblioteca principal está ocupada o la red está congestionada.
3. El rendimiento de la máquina de la biblioteca esclava. no es tan bueno como el de la biblioteca principal, lo que resulta en una reproducción lenta de las declaraciones
. 4. GTID no está habilitado, lo que da como resultado que los datos de transferencia de volcado sean en serie.
En el modo GTID en la versión 5.7, se pueden abrir múltiples subprocesos SQL, lo que realmente se da cuenta reproducción paralela.

3. ¿Qué se debe monitorear para la replicación maestro-esclavo?

muestra el estado del esclavo \
estado del hilo G, mensaje de error, retraso maestro-esclavo

4. ¿Qué tamaño tiene el volumen de datos de la base de datos de su empresa? cuanto crecimiento por dia

Copia de seguridad de 100G media hora
Crecimiento de 10 a 20 m

5. ¿Cómo hacer una copia de seguridad de la base de datos? ¿Qué estrategias de respaldo existen? ¿Con qué frecuencia?

100G 30 minutos
mysql --datos maestros --transacción única

6. ¿Cuántos modos tiene la replicación maestro-esclavo de mysql?

replicación del filtro de replicación retrasada binlog
GTID

7. ¿Cómo monitorear la lentitud de las declaraciones de la base de datos? ¿Cómo solucionar problemas? ¿Cómo resolver? ¿Cuál es la idea?

Habilite el registro de declaraciones lentas
ELK para recopilar registros lentos
Utilice el plan de ejecución para verificar si la declaración lenta está indexada
Informe el resultado de la ejecución al jefe o solicite al desarrollo que decida si aumentar el índice

8. ¿Qué contenido necesita monitorear la base de datos?

#El estado de replicación maestro-esclavo
muestra el estado de esclavo \G
#El estado de bloqueo del monitor
muestra el estado como 'innodb_rows_lock%'
seleccione * de information_schema.innodb_trx;
seleccione * de sys.innodb_lock_waits;
seleccione * de performance_schema.threads; seleccione
* de performance_schema.events_statements_current;
* de performance_schema.events_statements_history;
#Indicadores de parámetros
Memoria, transacción, subproceso, QPS, TPS, bloqueo, espera, indicadores de evaluación de parámetros.

9. ¿Qué fallo ha encontrado la base de datos? ¿Cómo resolverlo?

Información de conexión incorrecta
Fallo de red
Firewall
El número máximo de conexiones está en línea

10. ¿Entiendes MySQL MHA? Hable sobre el principio, ¿cómo cambiar después de una falla y cómo recuperarse?
Proceso de construcción:
1. Maestro 2 nodos independientes esclavos, GTID
2. Confianza mutua
3. Conexión suave
4. Crear usuario 5. Instalación del software (perl\mananger\node) 6. Verificación de inicio: ssh repl7 Archivo de configuración 8. Inicio 9. vip\binlogserver\sendreport El
kit de herramientas de Manager incluye principalmente las siguientes herramientas:
masterha_manger Iniciar MHA
masterha_check_ssh Verificar el estado de configuración de SSH de MHA
masterha_check_repl Verifique el estado de replicación de MySQL
masterha_master_monitor Verifique si el maestro está inactivo
masterha_check_status Verifique el estado de ejecución actual de MHA
masterha_master_switch Controle la conmutación por error (automática o manual)
masterha_conf_host Agregue o elimine información configurada del servidor
El kit de herramientas del nodo incluye principalmente Las siguientes herramientas:
Estas herramientas generalmente se activan mediante el script del MHA Manager, sin operación manual
save_binary_logs Guardar y copiar el registro binario del maestro
apply_diff_relay_logs Identificar los eventos de registro de retransmisión de diferencia y aplicar los eventos de diferencia
Purgar registros de retransmisión purge_relay_logs (no bloquea el hilo SQL)

11. ¿Cómo recuperar datos de MySQL eliminados por error? ¿Cuál es el proceso? ¿Cómo evitar que sucedan cosas así?

Copia de seguridad completa + binlog
0. Cuelgue la información de mantenimiento en la página de inicio
1. Especifique los parámetros para registrar el punto de ubicación POST durante la base de datos de copia de seguridad completa
2. Verifique el punto de ubicación de la base de datos de copia de seguridad completa y restaure los datos de copia de seguridad completa en el entorno de prueba
3. Intercepte los datos de binlog y extraiga Exporte todos los datos entre la última copia de seguridad completa y el comando de eliminación accidental
4. Envíe los datos de binlog a la base de datos de recuperación de prueba e impórtelos
5. Verifique que los datos recuperados estén completos, luego exporte los datos de recuperación de la base de datos de prueba y envíelos a la biblioteca principal
6. La biblioteca principal exporta los datos de recuperación
7. Verifique que los datos estén completos

12. ¿Qué optimizaciones has realizado en MySQL?

1. Host, almacenamiento, red, sistema operativo
2. Instancia: parámetro
3. Aplicación: SQL, índice, bloqueo
4. Arquitectura: alta disponibilidad, separación de lectura y escritura, distribuida

Empresa/Negocio/Comunicación

1. ¿Qué debo hacer si no puedo solucionar el problema en la empresa?
inserte la descripción de la imagen aquí

2. ¿Cómo se trabaja en la empresa cotizada?
inserte la descripción de la imagen aquí

3. ¿Qué proceso siguió su empresa desde la discusión hasta el lanzamiento de nuevos proyectos?

Establecimiento del proyecto --> Selección de tecnología del proyecto --> Asignación de tareas --> Desarrollo de código de desarrollo local --> Entorno de prueba de implementación de operación y mantenimiento --> Código en línea para el entorno de prueba para pruebas --> Código en línea para el pre -Prueba de estrés del entorno de lanzamiento
--> lanzamiento del código al entorno de producción --> monitoreo continuo

4. ¿Cuántas personas hay en el departamento técnico de su empresa? ¿Cuales son las posiciones?
inserte la descripción de la imagen aquí

5. ¿Cómo empezaste a trabajar cuando te uniste a una empresa?
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

6. ¿Cuáles son los componentes de tu salario?

1. Salario básico
2. Salario por desempeño
3. Bono de fin de año 1 salario
4. Cinco seguros y un fondo de vivienda

7. ¿Por qué dejaste tu trabajo?

Pensamientos internos de resignación:
1. Mejorarse a uno mismo/no puedo aprender nada
2. Dinero insuficiente/horas extras graves
3. La empresa anterior no era formal, como cinco seguros y un fondo de vivienda, buscando mejores oportunidades y desarrollo, mostrándose su propia plataforma
4. La empresa se ve afectada por la epidemia en la industria del turismo y no puede abrir la puerta 5.
Debido a la epidemia, la suspensión del trabajo y la reducción salarial
6. Sentirse agraviado/no le gustan los líderes/colegas
7. Los padres tienen mala salud y se quedan mas cerca de casa

Desde la perspectiva del entrevistador, ¿por qué haces esta pregunta?
1. Vea si esta persona es estable e inestable, y si se irá por el mismo motivo en el futuro.
2. La empresa no quiere una persona que cambie de trabajo con frecuencia
. 3. Vea si su inteligencia emocional está en línea, si Hablará mal de la empresa anterior o del líder ¿
Cómo reflejarlo Estable o inestable? Mire la experiencia laboral en el currículum
1. En lugar de 2 empresas en 1 año, es mejor escribir 1 empresa en 1 año
2. Es mejor trabajar en cada empresa durante al menos 1 año
3. Si se graduó en menos de un año, solo digamos todo el tercer año Todos los pasantes.

Ideas para responder:
Principios: no te quejes, no te quejes, no hables mal de la empresa anterior
1. La estrategia de la empresa ha cambiado y la sede se trasladará a xx, pero todavía quiero quedarme en Beijing por desarrollo
. El lugar es demasiado cómodo, así que quería aventurarme cuando era joven.
3. Usted acompañó a la empresa a desarrollarse desde 0 y fue testigo paso a paso de la estructura de la empresa que se desarrolló desde unos pocos servidores hasta docenas de servidores. Después de muchos Ajustes, la estructura se ha estabilizado
y el proceso de operación y mantenimiento también se ha solucionado, y no habrá cambios importantes en el corto plazo.
Quiero desafiar arquitecturas más difíciles y escenarios de aplicación complejos. Mientras sea joven, Quiere experimentar más arquitecturas en diferentes industrias.
4. He acumulado una rica experiencia en la empresa anterior. Tenía un sueño desde que era niño, con la esperanza de ingresar a la industria xx. En los últimos años, la industria xx se ha desarrollado muy bien. 5. Debido al impacto de la epidemia , la empresa decidió renunciar a
xx Proyectos, despidos estratégicos, despidos de nuestro departamento en su conjunto/reorganización de activos/intercambio de inversores

Supongo que te gusta

Origin blog.csdn.net/SongLiang02_/article/details/132244789
Recomendado
Clasificación