¿Las entrevistas técnicas plantearán muchas preguntas técnicas?
En primer lugar, el headhunter o recursos humanos de la empresa le enviará la presentación de la empresa y los requisitos laborales a su correo electrónico (o QQ, WeChat). A continuación se muestra la descripción del trabajo que me dio el cazatalentos. Por consideraciones de ética profesional, no publicaré la presentación de la empresa ni la información del aviso de la entrevista, pero publicaré los requisitos del puesto:
Descripción del puesto:
1. y Optimización y mantenimiento;
2. Responsable de la copia de seguridad, gestión, mantenimiento y análisis de la información de registro del sistema de aplicaciones
3. análisis de rendimiento del sistema de aplicaciones y optimización;
4. Responsable del desarrollo, implementación, actualización y mantenimiento de sistemas de implementación de aplicaciones, sistemas de configuración del entorno y sistemas de monitoreo, y construcción de una plataforma de operación y mantenimiento de alto rendimiento. .
Requisitos laborales:
1. Familiarizado con conocimientos básicos del sistema operativo Linux, competente en el uso de comandos operativos comunes de Linux
2. HAproxy y otras aplicaciones relacionadas con aplicaciones Implementación, configuración, optimización y mantenimiento de software;
3. Familiarizado con los conocimientos básicos de la red, familiarizado con el principio de funcionamiento de TCP/IP, capaz de equipar un conmutador o enrutador y competente en el análisis de las condiciones de la red.
4. Familiarizado con uno o más programas de desarrollo y operación en Shell/perl/python.
5. Familiarizado con software de monitoreo como Nagios y Ganglia.
Viendo los requisitos anteriores, ¿crees que no son altos? Si observa detenidamente, encontrará que esta empresa requiere mucho, no solo conocimiento de la red (parece que todas las empresas familiarizadas con TCP/IP escribirán dichos requisitos), sino también el desarrollo de habilidades. Creo que muchos hermanos que se dedican a la operación y mantenimiento tienen dolor de cabeza en la red y no son muy buenos configurando y administrando conmutadores y enrutadores.
Luego, el autor conoce su empresa en detalle, comprende los requisitos del trabajo y, de repente, revisa los puntos de conocimiento y los puntos técnicos que se pueden preguntar. El día de la entrevista levántate temprano y lávate los dientes, especialmente aquellos que tienen mal aliento. Lo mejor es preparar un chicle antes de llegar a la empresa entrevistadora y masticar un chicle para evitar oler el aliento y hacer que pierdas puntos en la mente del entrevistador. Recuerda comer temprano, y si la entrevista es por la tarde, almuerza también. Si comes temprano tendrás energía. También tenga en cuenta que debe traer su currículum y bolígrafo, aunque allí tendrán su currículum, así que tenga su currículum listo por si acaso.
Por último, la clave está en comunicarse con el entrevistador. Las empresas que tienen exámenes escritos le pedirán que responda algunas preguntas de la entrevista. Si no hay prueba escrita, puedes hablar directamente con el entrevistador. Aquí hay algunas preguntas que me vinieron a la mente después de hablar con el entrevistador. Los compartiré contigo. El autor ha memorizado 7 preguntas, pero parece tener dificultades para recordar dos preguntas. Si tiene una respuesta más adecuada, asegúrese de publicarla para debatirla y avanzar juntos:
1. Casi todas las empresas te pedirán que te presentes primero, como si fuera un curso obligatorio.
Respuesta del autor: Aquí se omite la presentación del autor. Sugiero que el tiempo para presentarse no sea demasiado largo, 3-4 minutos es lo apropiado. Si habla demasiado, el entrevistador pensará que habla demasiado. No hay ningún beneficio en decir muy poco, porque hará que la gente piense que tu experiencia es demasiado simple y que no hay espacio. En circunstancias normales, cuando se presenta, el entrevistador está mirando su currículum en ese momento. Necesita escucharte presentarte y leer tu currículum al mismo tiempo. Si se presenta en unas pocas palabras, definitivamente no podrá recuperarse y su imagen caerá. Al mismo tiempo, debes tener claridad en tu pensamiento y lógica. Es mejor presentarlo basándose en la experiencia escrita en su currículum, para que pueda comunicarle los pensamientos del entrevistador y dejar que lo siga. No digas una palabra, di una palabra. Cuéntame menos sobre tu personalidad y aficiones (es mejor no decir nada en absoluto).
Simplemente puede enumerar varias empresas para las que ha trabajado (enumere hasta tres/incluida su empresa actual, preste atención al orden), de qué trabajo fue responsable en esas empresas y qué tecnologías ha utilizado. Concéntrese en presentar las tareas de las que es responsable su empresa actual. Puede presentarlas con un poco de detalle para no confundir al entrevistador.
2. ¿Cómo implementar la publicación en escala de grises?
Respuesta del autor: En realidad, no respondí bien a esta pregunta, así que no engañaré a todos escribiendo sobre ello. Cada uno tiene una excelente manera de disfrutarlo. Pero luego vi la sugerencia de un internauta sobre Zhihu, que fue bastante buena. Puede consultar:/question/20584476
3. ¿Está familiarizado con Mongodb? ¿Cuántas unidades se suelen desplegar?
Respuesta del autor: Sí, se ha implementado, pero no se ha realizado ninguna investigación en profundidad. Generalmente, mongodb implementa un clúster segmentado maestro-esclavo o mongodb; se recomienda implementar de tres a cinco servidores. La idea básica del corte de MongoDB es cortar una colección en pedazos pequeños. Estos fragmentos se dividen en varios sectores, cada uno de los cuales es responsable de sólo una parte de los datos totales. Para el cliente, no es necesario saber si los datos están divididos, ni saber qué fragmento del servidor corresponde a qué datos. Antes de fragmentar los datos, se debe ejecutar un proceso de enrutamiento llamado mongos. Este enrutador sabe dónde se almacenan todos los datos y la correspondencia entre los datos y los chips. Para el cliente, sólo sabe que hay un mongod normal conectado. En el proceso de solicitud de datos, a través de la relación correspondiente entre los datos y el chip en el enrutador, se enruta al chip donde se encuentran los datos de destino. Si hay una respuesta a la solicitud, el enrutador recopila la respuesta y la envía de vuelta al cliente.
4. ¿Cómo publicar y revertir, cómo usar Jenkins?
Respuesta del autor: Versión: Jenkins configura la ruta del código (SVN o GIT), luego extrae el código y lo etiqueta. Compile según sea necesario, envíelo al servidor de publicación después de la compilación (el script se puede ajustar en Jenkins) y luego distribuya hacia abajo desde el servidor de distribución al servidor empresarial.
Revertir: busque la versión correspondiente según el número de versión y envíela al servidor de publicación.
5.¿Modo de trabajo de Tomcat?
Respuesta del autor: Tomcat es un contenedor JSP/Servlet. Como contenedor de Servlet, tiene tres modos de trabajo: contenedor de Servlet independiente, contenedor de Servlet en proceso y contenedor de Servlet fuera de proceso.
Según el modo de trabajo de Tomcat, las solicitudes que ingresan a Tomcat se pueden dividir en las dos categorías siguientes:
Tomcat como servidor de aplicaciones: la solicitud proviene del servidor web front-end , que puede ser Apache, IIS, Nginx, etc.
Tomcat es un servidor independiente: la solicitud proviene del navegador web
6.
Respuesta del autor: Ahora el negocio de la empresa se ejecuta en Alibaba Cloud y nuestro monitoreo preferido es el monitoreo de Alibaba Cloud. Alibaba Cloud Monitoring viene con plantillas de monitoreo para ECS, RDS y otros servicios, que se pueden combinar con reglas de alarma personalizadas para activar proyectos de monitoreo. El negocio de la última empresa está alojado en IDC y utiliza la solución de monitoreo zabbix. Zabbix tiene una rica interfaz gráfica y muchas plantillas de monitoreo, especialmente para descubrir y monitorear automáticamente múltiples particiones y tarjetas de red. Sin embargo, el agente zabbix debe instalarse en cada cliente (extremo monitoreado).
7. ¿Cómo realiza una copia de seguridad de sus datos, incluidas las copias de seguridad de las bases de datos?
Respuesta del autor: en un entorno de producción, ya sean datos de aplicaciones o datos de bases de datos, habrá una arquitectura o clúster maestro-esclavo durante la implementación, que en sí mismo es una copia de seguridad en caliente de los datos; Se puede considerar la posibilidad de realizar una copia de seguridad en frío, utilizando servidores dedicados que sirvan como servidores de copia de seguridad. Por ejemplo, puede utilizar rsync inotify para implementar una copia de seguridad de datos en frío. Si se trata de una copia de seguridad de un paquete distribuido, normalmente hay un servidor de publicación y el paquete distribuido se guardará cada vez que se distribuya.
Resumen
Para resumir algunos puntos a destacar durante la entrevista, puede que el autor tampoco tenga razón.
Para que los hermanos que trabajan en operación y mantenimiento obtengan salarios altos, debemos testificar juntos, avanzar juntos y discutir juntos:
En primer lugar, debe estar familiarizado con su currículum y debe estar capaz de decir una o dos cosas sobre la escritura en su currículum. Es una cuestión técnica, porque el entrevistador seleccionará las preguntas escritas en su currículum. Por ejemplo, su currículum dice que está familiarizado con la implementación, instalación y principios de la base de datos MySQL. Inmediatamente escribiste tal habilidad. Si no está familiarizado con él, también debe comprender los principios de MySQL y dar una idea general. Si el entrevistador te pregunta sobre este artículo y no puedes responder, perderás puntos en su mente. Básicamente, hay pocas esperanzas para esta entrevista.
En segundo lugar, si el entrevistador te hace una pregunta que no entiendes, simplemente di que no la conoces y que no la has estudiado en detalle. No pretendas entender y hablar sobre temas inútiles para encubrir, solo hará que el entrevistador se sienta resentido contigo.
En tercer lugar, esté bien preparado y memorice tantos conocimientos básicos como sea posible. Principios de comparación para preguntas generales de entrevista. Pocas personas preguntan cómo está configurado el archivo de configuración específico. Antes de la entrevista, también debe comprender la "Descripción del puesto" y los "Requisitos del puesto". Aunque a veces la mayoría de las personas no hacen preguntas sobre los requisitos laborales, deben comprenderlos y familiarizarse con ellos.
En cuarto lugar, debes resumir después de la entrevista, intentar recordar cada pregunta formulada por el entrevistador y volver atrás y registrarla. Si haces una pregunta que no sabes, debes ir a Baidu o buscar a un amigo inmediatamente después para obtener más información al respecto, de modo que puedas recordar el trabajo y volver a hacer la misma pregunta durante la próxima entrevista.
Después de la entrevista, el entrevistador se acercó a mí para hablar sobre el salario y me preguntó con cuánto dinero cubriría mis necesidades. No pude revelarlo. Puedes chatear en privado, jaja. Posteriormente, el autor actualizará sucesivamente las experiencias y preguntas de las entrevistas anteriores. Los amigos que lo necesiten pueden reimprimirlas o recopilarlas para discutirlas juntas.
Basado en la cálida atmósfera de todos, el autor pasó otra tarde recordando y recopilando la experiencia de la entrevista de 2065438 en una empresa de medios el 24 de febrero de 2007. La ubicación estaba cerca del East Third Ring Road (no había metro). En el pasado, tenías que cambiar a un autobús cuando llegabas a Sihui). Afortunadamente, el autor tiene la costumbre de tomar notas y registrar todas las preguntas de entrevistas anteriores. Esta entrevista todavía está fresca en mi memoria porque la empresa se la ha enviado al autor. La siguiente es una descripción de los requisitos laborales de la empresa:
Responsabilidades laborales:
1 Responsable del control de versiones, construcción y gestión de lanzamiento de los productos de la empresa;
2. Responsable de la gestión de la biblioteca de configuración unificada de la empresa, la gestión y asignación precisa y oportuna de permisos y copias de seguridad periódicas de la configuración;
3. servidores de prueba;
4. Responsable de la instalación, configuración, monitoreo y mantenimiento, manejo de problemas, actualizaciones de software, respaldo de datos, respuesta de emergencia, resolución de problemas, etc. del sistema operativo Linux. , garantizar el funcionamiento estable del entorno en línea;
5 Responsable de respaldar el funcionamiento estable de la plataforma 24 × 7 y realizar una planificación de capacidad con visión de futuro;
6. la gestión diaria de los servidores de la sala de ordenadores de la empresa. Mantenimiento e instalación, despliegue y mantenimiento de sistemas de red.
Requisitos laborales:
1. Licenciatura o superior en carreras relacionadas con la informática, más de 2 años de experiencia en operación y mantenimiento o gestión de configuración.
2. Familiarizado con al menos un sistema de monitoreo, como Nagios/Zabbix/
3. Familiarizado con al menos una herramienta de administración de clústeres, como ansi ble/salt stack
4. Haber utilizado herramientas de publicación integradas para publicar y crear Experiencia preferida. Por ejemplo: Bamboo o Jenkins;;
5. Familiarizado con el sistema operativo Unix/Linux, familiarizado con middleware como Weblogic/tomcat, capaz de escribir scripts de shell, familiarizado con los procesos de desarrollo de software y productos de proceso, y tener una cierta base de red
6. Familiarizado con los sistemas de recopilación y procesamiento de registros, como rsyslog, flume
7. Tener una gran conciencia de seguridad y fuertes habilidades de comunicación, coordinación y aprendizaje. y buen trabajo en equipo Espiritual y proactivo en el trabajo.
Después de llegar allí, la chica de recepción me llevó al sótano de su empresa. Miré a mi alrededor y parecía haber una sala de máquinas a mi lado, porque escuché el sonido del servidor.
Después de esperar unos minutos, bajó el entrevistador. Desde la inspección visual, el entrevistador es relativamente delgado y parece de mi misma edad (probablemente menos de 120 cm). Dijo que estaba a cargo del departamento de operación y mantenimiento y luego me pidió que me presentara primero. Es una rutina y presentarse es inevitable, por lo que los hermanos deben practicar cómo presentarse. Luego comenzó a hacerme preguntas. Estuvo bien conversar con el entrevistador. Me hizo más de 10 preguntas. Recuerdo las siguientes 10 preguntas:
¿Cuál es la diferencia entre el principio de 1 y la carga LVS? y carga Nginx?
Respuesta del autor: Creo que la demanda de entrevista no abordó este tema. Normalmente pregunto: "¿Cuáles son la tecnología de equilibrio de carga y los algoritmos de programación de LVS?". Mi respuesta se basa en la pregunta que hice. De todos modos, asintió con frecuencia. Por supuesto, la respuesta del autor puede no ser tan detallada como la que he recopilado a continuación, pero lo he dejado claro.
LVS es la abreviatura de Liunx Virtual Server. Utilizando la tecnología de equilibrio de carga proporcionada por LVS y el sistema operativo Linux, se puede realizar un clúster de servidores de alto rendimiento y alta disponibilidad. En términos generales, LVS está ubicado en el extremo frontal de todo el sistema de clúster y consta de uno o más programadores de carga distribuidos en servidores de aplicaciones. Funciona en la capa 4 (es decir, la capa de transporte en TCP/IP se implementa mediante el módulo IPVS basado en la tecnología de equilibrio de carga IP). IPVS tiene tres mecanismos de equilibrio de carga, a saber, NAT, TUN y DR, de la siguiente manera: < / p>
VS/NAT: es decir (servidor virtual a través de traducción de direcciones de red)
Es decir, la tecnología de traducción de direcciones de red implementa un servidor virtual. Cuando la solicitud del usuario llega al programador, el programador reescribe la dirección de destino (es decir, la dirección IP virtual) del mensaje de solicitud en la dirección del servidor real seleccionada y, al mismo tiempo, el puerto de destino del mensaje también se cambia al correspondiente. puerto del servidor real seleccionado. Finalmente, envíe la solicitud de mensaje al servidor real seleccionado. Después de obtener los datos del servidor, cuando el servidor real devuelve los datos al usuario, necesita cambiar la dirección de origen y el puerto del mensaje a la dirección IP virtual y el puerto correspondiente a través del programador de carga nuevamente, y luego enviar los datos. al usuario para completar todo el proceso de programación de carga.
Como puede ver, en el modo NAT, tanto los mensajes de solicitud como de respuesta del usuario deben ser reescritos por la dirección del servidor Director. Cuando hay cada vez más solicitudes de usuarios, se dice que la potencia de procesamiento del programador es un cuello de botella.
VS/TUN: Es decir (servidor virtual a través de túnel IP)
Es decir, la tecnología de túnel IP implementa un servidor virtual. Su programación y gestión de conexiones son las mismas que VS/NAT, pero su método de reenvío de mensajes es diferente. En VS/TUN, el programador utiliza tecnología de túnel IP para reenviar la solicitud del usuario a un servidor real, que responderá directamente a la solicitud del usuario sin pasar por el programador de front-end. Además, no existe ningún requisito en cuanto a la ubicación geográfica del servidor real. Puede estar ubicado en el mismo segmento de red que el servidor Director o puede ser una red independiente. Por lo tanto, en el modo TUN, el programador solo procesará las solicitudes de mensajes del usuario y el rendimiento del sistema del clúster mejora enormemente.
VS/DR: Es decir (servidor virtual mediante enrutamiento directo)
Es decir, el servidor virtual se implementa mediante tecnología de enrutamiento directo. Su programación y gestión de conexiones son las mismas que en VS/NAT y VS/TUN, pero su método de reenvío de mensajes es diferente. VS/DR envía la solicitud al Real Server reescribiendo la dirección MAC del mensaje de solicitud, y Real Server devuelve directamente la respuesta al cliente, evitando así la sobrecarga del túnel IP en VS/TUN. Este método tiene el rendimiento más alto entre los tres mecanismos de programación de carga, pero debe requerir que tanto Director Server como Real Server tengan una tarjeta de red conectada al mismo segmento de red física.
En respuesta al algoritmo de programación de carga, IPVS se implementa en ocho algoritmos de programación de carga. Hay cuatro algoritmos de programación de uso común (programación por turnos, programación por turnos ponderada, programación con mínimo enlace y programación con mínimo enlace ponderado). En términos generales, basta con decir estos cuatro algoritmos, y no es necesario explicarlos en detalle. Siempre que explique claramente las tres tecnologías de equilibrio de carga anteriores, el entrevistador quedará satisfecho con esta pregunta.
A continuación, hablemos brevemente de la diferencia entre este y nginx:
Ventajas de LVS:
Fuerte resistencia a la carga, trabajando en la cuarta capa solo para distribución y sin tráfico, lo que también determina Tiene el rendimiento más sólido entre el software de equilibrio de carga; no hay tráfico y el rendimiento del equilibrador IO no se ve afectado por un gran tráfico.
Funciona de manera estable y tiene su propia solución completa de respaldo en caliente, como por ejemplo; LVS Keepalived, LVS heart beat;;
El rango de aplicaciones es relativamente amplio y todas las aplicaciones pueden equilibrarse en carga;
La configuración es relativamente baja, lo que es a la vez una desventaja y un ventaja. Como no hay mucho que configurar, no hay necesidad de demasiado contacto, lo que reduce en gran medida la probabilidad de error humano.
Desventajas de LVS:
El software en sí no admite el procesamiento convencional y no puede separar datos dinámicos y estáticos, lo que resalta las ventajas de Nginx/HAProxy Keepalived.
Si la aplicación del sitio web es grande, LVS/DR Keepalived será más complicado, especialmente si hay una máquina con una aplicación Windows Server detrás, el proceso de implementación, configuración y mantenimiento será más problemático. Relativamente hablando, Nginx/HAProxy Keepalived es más simple.
Ventajas de Nginx:
Trabajando en la capa 7 de OSI, podemos desarrollar algunas estrategias de descarga para aplicaciones http. Por ejemplo, para nombres de dominio y estructuras de directorios. Su regularización es más poderosa y flexible que HAProxy;
Nginx tiene poca dependencia de la red. En teoría, la función de carga se puede realizar mediante ping, lo que también es su ventaja.
Nginx es sencillo de instalar y configurar, y fácil de probar.
Puede soportar alta presión de carga y estabilidad y, en general, puede admitir decenas de miles de concurrencias.
Nginx puede detectar fallas internas del servidor a través del puerto, como el estado devuelto; por el servidor en función del procesamiento del código de las páginas web, tiempo de espera, etc. y vuelva a enviar la solicitud devolviendo el error a otro nodo;
Nginx no solo es un excelente software de equilibrador de carga/proxy inverso, sino también un potente servidor de aplicaciones web. LNMP también es un entorno web muy popular actualmente y es muy competitivo con el entorno LAMP. Nginx tiene ventajas sobre Apache en el procesamiento de páginas estáticas, especialmente al resistir una alta concurrencia.
Nginx se está volviendo cada vez más maduro como caché de aceleración inversa web y es más rápido que el servidor Squid tradicional. Los amigos que lo necesiten pueden considerar usarlo como acelerador de proxy inverso.
Desventajas de Nginx:
Nginx no admite la detección de URL.
Nginx solo puede admitir http y correo electrónico, que es su debilidad.
Las capacidades de mantenimiento de sesiones y guía de cookies de Nginx son relativamente deficientes.
2. El principio del clúster de Redis, cómo lograr la fragmentación de Redis y en qué entornos se utiliza el Redis de su empresa.
El autor respondió: Principio del grupo de reids:
De hecho, su principio no se puede explicar claramente en pocas palabras. Antes de Redis versión 3.0, no se admitía la agrupación en clústeres. El número máximo de nodos recomendado oficialmente es 1000 y la creación de un clúster requiere al menos 3 (maestro) y 3 (esclavo). Es una arquitectura de almacenamiento distribuido descentralizado donde los datos se pueden compartir entre múltiples nodos, resolviendo así los problemas de alta disponibilidad y escalabilidad de redis 3.0. El clúster puede dividir automáticamente los datos en varios nodos. Cuando falla un nodo del clúster, redis puede continuar procesando las solicitudes de los clientes.
Redis Sharding:
La partición es el proceso de dividir datos en múltiples instancias de Redis para que cada instancia contenga solo un subconjunto de todas las claves. Cuando la cantidad de datos es grande, los datos se almacenan en múltiples bases de datos, lo que reduce la presión de conexión en un solo nodo y permite el almacenamiento masivo de datos.
Los métodos de implementación segmentados generalmente se dividen en los siguientes tres tipos:
(1) Cortar en el cliente; este método determina la instancia de Redis que se conectará en el cliente y luego accede directamente a la instancia de Redis correspondiente;
(2) Reactivo de corte; de esta manera, el cliente no accede directamente a la instancia de Redis, ni sabe a qué instancia de Redis acceder, pero el proxy reenvía la solicitud y el proceso de trabajo es el mismo; De la siguiente manera: el cliente primero envía una solicitud al proxy y el proxy utiliza el algoritmo de corte para determinar a qué instancia de Redis acceder y luego envía la solicitud a la instancia de Redis correspondiente. La instancia de Redis devuelve el resultado al agente. El agente finalmente devuelve el resultado al cliente.
(3) Segmento en el servidor Redis; este método se denomina "enrutamiento de consultas". De esta forma, el cliente selecciona aleatoriamente una instancia de Redis para enviar la solicitud. Si el contenido solicitado no está en la instancia de Redis actual, será responsable de reenviar la solicitud a la instancia de Redis correcta. En algunas implementaciones, la instancia de Redis no reenvía la solicitud, sino que envía la información de Redis correcta al cliente, y el cliente envía la solicitud a la instancia de Redis correcta.
En qué entorno se utiliza Redis:
Redis se utiliza en entornos Java y PHP. Principalmente almacena en caché datos de información de inicio de sesión del usuario, datos de detalles del dispositivo, datos de inicio de sesión de miembros, etc.
3. ¿Cómo se cuentan y clasifican las IP visitadas actualmente?
Respuesta del autor: Para contar las IP de acceso de los usuarios, use awk combinado con uniq y sort para filtrar el acceso. Los registros se pueden contar y ordenar bien. Esta respuesta suele ser suficiente. Por supuesto, también puedes nombrar otros métodos estadísticos, que son todos tus puntos a favor.
4. ¿Qué tecnologías de virtualización utilizarás?
Respuesta del autor: vmware vsphere y kvm, uso más vmware vsphere para virtualización. Hay varios libros que usan vmware vsphere y kvm en el entorno de producción. VMware es una tecnología de virtualización de arquitectura nativa que puede ejecutarse directamente en el hardware. Kvm es una tecnología de virtualización de arquitectura residente que se ejecuta en el sistema. vmware vcenter
Es fácil de administrar y la interfaz gráfica de administración es potente y estable. Generalmente es adecuada para uso empresarial. La interfaz de administración de KVM es un poco pobre y requiere que los administradores dediquen algún tiempo a aprender sus técnicas de mantenimiento y administración.
5. Si alguien se da cuenta de que la interfaz de recuperación es extremadamente lenta, ¿cómo lo comprobaría?
Respuesta del autor: De hecho, no existe una respuesta específica a esta pregunta. Simplemente depende de cómo encajen sus respuestas con el entrevistador. Que puedas hablar de lo que él quiere depende principalmente de tu forma de resolver los problemas. Lo que digo es esto: pregúntele a la persona que respondió qué aplicación de servicio o interfaz tarda en acceder a la página y pídale que le envíe la página o la URL relacionada. En primer lugar, el análisis más intuitivo es utilizar el navegador para presionar F12 y ver qué contenido es demasiado lento (resolución DNS, carga de red, imágenes grandes o el contenido de un archivo, etc.) y, de ser así, prescriba el medicamento adecuado para resolverlo (si la imagen es lenta, optimice las imágenes, red lenta) En segundo lugar, mire los registros del servicio backend. De hecho, observar los registros relevantes para la mayoría de los problemas es el análisis más eficaz. Es mejor usar tail -f F para rastrear el registro. Por supuesto, debe hacer clic en Probar para acceder a los registros de la interfaz antes de que puedan generarse. Finalmente excluya sql, busque sql y ejecútelo en mysql para ver si lleva mucho tiempo. Si lleva mucho tiempo, optimice el problema de SQL. Explique SQL y mire el índice y optimícelo en consecuencia. Si la cantidad de datos es demasiado grande, se puede dividir en tablas o bases de datos. Si no hay ningún problema con el SQL, es posible que haya un problema con el código lógico que escribió. Revise el código línea por línea y encuentre lugares que requieran mucho tiempo para transformar y optimizar la lógica.
6. La base de datos MySQL adopta la separación de lectura y escritura maestro-esclavo, y la base de datos principal lee y escribe desde la base de datos esclava. ¿Qué harías si no pudieras leer en la biblioteca o leyeras extremadamente lento en la biblioteca?
Respuesta del autor: No creo que la respuesta a esta pregunta sea muy buena.
A los amigos que son buenos en MySQL les gustaría dar algunos consejos. Bajo la premisa de resolver el problema, primero aumente la cantidad de bibliotecas esclavas para resolver temporalmente el problema, luego capture el registro lento, analice la declaración SQL y optimice. La velocidad es lenta o el hardware no puede mantener el ritmo y es necesario actualizarlo, o el software debe depurarse y optimizarse, y el problema se está resolviendo en detalle;
7. ¿Cuál es la diferencia entre CPU de un solo núcleo y de múltiples núcleos?
Respuesta del autor: Muy pocos entrevistadores harán este tipo de preguntas, e incluso si lo hacen, deben responderse con sinceridad. Afortunadamente, aprendí sobre la CPU antes. Lo que estoy diciendo es esto: una CPU de doble núcleo puede manejar múltiples tareas y, para poder manejarlas bien, ponerlas en cola. Una CPU de un solo núcleo maneja una tarea a la vez, realizando cada tarea del programa por turno. La ventaja del doble núcleo no es la frecuencia, sino la capacidad de manejar varias cosas al mismo tiempo. Un solo núcleo solo puede hacer una cosa al mismo tiempo. Por ejemplo, puede descargar BT en segundo plano al mismo tiempo y puede copiar archivos mientras mira películas en la recepción, QQ.
8. ¿Cuál es la diferencia entre disco mecánico y unidad de estado sólido?
El autor respondió: Joder, qué año es, y le pregunté por el plato. Este entrevistador es un poco divertido. Entonces tienes que responder:
HDD significa disco duro mecánico y SSD significa unidad de estado sólido. En primer lugar, en términos de rendimiento, los SSD son casi mejores que los discos duros mecánicos. La velocidad de lectura y escritura de los SSD es definitivamente más rápida que la de los discos duros mecánicos, porque las estructuras de los SSD y los discos duros mecánicos son completamente diferentes (la estructura específica sí). no es necesario explicarlo). En segundo lugar, los discos de estado sólido son casi silenciosos, mientras que los discos mecánicos son ruidosos. Además, según las condiciones actuales del mercado, los discos mecánicos generales tienen grandes capacidades y precios bajos; los discos de estado sólido tienen pequeñas capacidades y precios altos. Pero las empresas siguen prefiriendo los SSD.
9. ¿Qué sistemas de monitorización habéis utilizado?
Respuesta del autor: Esta pregunta de seguimiento se vuelve a formular. 2065 438 08 Se hizo una pregunta similar el 4 de octubre. He usado zabbix, nagios, cacit, etc. Pero en esta entrevista solo dije que usé zabbix y nagios. Posteriormente, el entrevistador me pidió que le hablara de las diferencias entre los dos tipos de monitorización:
En cuanto a funciones y gráficos de la página web:
Nagios es sencillo e intuitivo, con alarmas y datos en la misma página, y el rojo es el elemento de la pregunta. No realizar ninguna configuración en la web de Nagios. Nagios requiere la instalación de complementos adicionales y el dibujo de los complementos no es lo suficientemente hermoso.
Los datos de monitorización y las alarmas de Zabbix están separados. Para ver el elemento problemático, debe ver el desencadenante y los datos deben verse en los datos más recientes. Además, zabbix tiene muchos otros elementos de configuración. Zabbix tiene una función de dibujo que puede mostrar manualmente múltiples elementos de monitoreo en una imagen.
En términos de servicios de seguimiento:
Nagios viene con muy pocos proyectos de seguimiento. Al monitorear algunos cambios, como múltiples particiones y múltiples tarjetas de red, se requiere una configuración manual.
Zabbix viene con una gran cantidad de contenido de seguimiento. Parece que Zabbix ha hecho mucho por usted desde el principio, especialmente cuando descubre y monitorea automáticamente múltiples particiones y múltiples tarjetas de red. Ese momento es muy cómodo y sin preocupaciones.
En términos de configuración por lotes y alarmas:
Nagios, para el monitoreo por lotes de hosts, necesita usar scripts para agregar hosts en el lado del servidor y copiar archivos de servicio. Nagios utiliza scripts para modificar los archivos de servicios de todos los hosts y agregar nuevos servicios.
Zabbix configura reglas de registro automático en el lado del servidor. Una vez configuradas las reglas, no es necesario realizar adiciones posteriores en el lado del cliente en el lado del servidor. Zabbix solo necesita agregar manualmente un elemento de monitoreo en la plantilla.
En términos generales:
Nagios dedica mucho tiempo a escribir complementos y Zabbix dedica mucho tiempo a explorar funciones.
Nagios es más fácil de usar. Nagios se puede completar en dos días y Zabbix se puede completar en dos semanas.
La función de dibujo de Zabbix es más poderosa que Nagios.
Zabbix es más conciso para el monitoreo por lotes y los cambios de servicio; si Nagios escribe un script automatizado, también es muy simple. El problema es que escribir scripts de automatización es muy laborioso.
10. Dado un conjunto de entornos, ¿cómo diseñaría una arquitectura de alta disponibilidad y alta concurrencia?
La respuesta del autor: si este entorno se implementa en la nube (como Alibaba Cloud), no es necesario considerar el diseño de hardware. Se puede conectar directamente a la arquitectura estándar de alta disponibilidad y alta concurrencia de Alibaba Cloud SLB ECS RDS. Los servicios externos se cargan directamente con la tecnología de equilibrio de carga SLB, que SLB de Alibaba distribuye a los hosts ECS back-end. Se implementan varios hosts ECS y las aplicaciones se dividen en diferentes hosts ECS para subdividir los servicios tanto como sea posible. La base de datos utiliza la versión RDS de alta disponibilidad (arquitectura clásica de alta disponibilidad con un maestro y una copia de seguridad) o la versión financiera RDS (arquitectura de tres nodos con un maestro y dos copias de seguridad). Combinado con otros servicios de Alibaba, es absolutamente posible que a medida que aumenta el volumen de negocios y los hosts no sean suficientes, los hosts ECS se puedan expandir vertical y horizontalmente.
Si este entorno está alojado en IDC, entonces debería considerar tanto el hardware como el software (servicios de aplicaciones). Para lograr una alta disponibilidad y una alta concurrencia de hardware, la empresa debe comprar varios conjuntos de equipos de hardware de red que deben ser redundantes (como equipos de carga F5, firewalls, conmutadores de capa central y conmutadores de capa de acceso, especialmente en el diseño de redes). el equipo debe ser redundante. Debe haber una conexión de dos cables entre ellos. Si todos los dispositivos se ejecutan en una sola máquina y uno de ellos cuelga, toda su red quedará paralizada y la alta disponibilidad y la alta concurrencia estarán fuera de discusión. En segundo lugar, consideraría los servicios de aplicaciones. Usaré las soluciones maduras de código abierto LVS Keepalived o Nginx Keepalived para servicios externos, el clúster redis y el clúster Mongodb como capa de caché, kafka y zookeeper como middleware, fastDFS o MFS como almacenamiento espejo. Si la cantidad de datos es grande, se puede utilizar Hadoop. La base de datos backend puede utilizar "MHA maestro-esclavo". En un entorno así, una arquitectura de alta disponibilidad y alta concurrencia es absolutamente satisfactoria.