Recientemente, se recibió una solicitud de ayuda para configurar un servidor dedicado para el funcionamiento de una tienda en línea en 1C-Bitrix. El motivo de la apelación es el lento funcionamiento del sitio.
Miramos el sitio; de hecho, ¡algunas páginas se cargan durante más de un minuto! Lo primero que me vino a la mente al mirar el sitio fue el funcionamiento subóptimo de los componentes desarrollados por otro desarrollador. Pero no tanto..
Datos iniciales: Servidor en Xeon - 2 GB de memoria, RAID. SO - FreeBSD. AUTOBÚS - Negocios.
Bueno, intentemos arreglar la situación de alguna manera ...
Haré una reserva de inmediato de que este artículo no es una instrucción para trabajar con el módulo, solo un caso real de la vida del uso del módulo. Tal vez alguien sea útil.
Después de la auditoría, se identificaron los siguientes problemas principales:
1. Necesitas instalar un acelerador de PHP en el servidor
2. En la página /price/, el componente "nvisions:menu.sections" tiene grandes problemas: se genera una solicitud a la base de datos que se procesa durante casi un minuto; esta es también la razón principal de la carga prolongada de la página. como una carga pesada en el servidor.
3. La base de datos funciona lentamente (687 solicitudes de escritura por segundo es muy pequeña), el problema puede estar en la configuración del servidor. Necesita convertir tablas a InnoDB y configurar InnoDB
4. El sistema de archivos no es muy rápido, pueden ser las características del hardware del servidor (por ejemplo, RAID), pero en principio, el sitio debería funcionar bien con esa velocidad
5. El problema en la plantilla del sitio (hay enlaces que no existen (a)) debe eliminarse; esto requiere muchos recursos.
6. Es necesario configurar una arquitectura de dos niveles en el servidor (servir contenido estático a través de nginx), esto reducirá significativamente la carga en el servidor Apache, estabilizará el consumo de memoria en las cargas y, por lo tanto, acelerará el trabajo y aumentará la confiabilidad. del proyecto en su conjunto.
Analicemos la información del módulo de rendimiento 1C-Bitrix:
La figura muestra claramente problemas con el servidor de la base de datos, lo más probable es que la configuración no sea la óptima, porque. servidor dedicado.
También sospechosamente bajo número de operaciones de archivos.
Problemas obvios con código o componentes en la página /price/index.php
Tiempo de generación de /bitrix/urlrewrite.php sospechosamente largo - busque más:
Sí, esa es la fuente del problema: la plantilla contiene un enlace a una imagen inexistente, esto genera un error 404 y obliga a Apache a procesar este error y generar una página completa.
El mismo problema afecta a todas las páginas del sitio asociadas con la plantilla problemática:
Y aquí están los componentes problemáticos en la página:
El componente de menú tiene el almacenamiento en caché deshabilitado.
Resumen de la página:
Bueno, aquí un breve análisis. Qué convenientemente el módulo de rendimiento le dice "dónde están los problemas". Comencemos a solucionar problemas:
Agregaron una imagen a la que había un enlace, agregaron una imagen y no eliminaron los enlaces, porque había muchos enlaces, incluso en componentes de terceros. También en esta página, se deshabilitó el componente problemático de terceros (nsvision:menu.sections). su propósito no está claro. (después del cierre, nada ha cambiado externamente)
Resultado:
Urlrewrite.php ahora no se llama en cada hit
Como puede ver, la velocidad de trabajo ha aumentado 2 veces (!).
Vamos más allá:
Instalar eacelerador. Aquí no describo cómo se instala el acelerador, porque. esta información, si es necesaria, siempre se puede encontrar en Internet.
Resultado después de instalar eAccelerator: Otro doble aumento en el rendimiento.
Vamos más allá: Optimizando la base de datos(transferir a InnoDB y optimizar la configuración)
Como puede ver en la prueba del módulo de rendimiento, la velocidad de la base de datos ha aumentado significativamente
En general, el rendimiento general después de optimizar la base de datos se mantuvo sin cambios, posiblemente debido a la lentitud del trabajo. sistema de archivos.
ACTUALIZAR:
Recomendaciones del módulo de rendimiento.
Escuchando las recomendaciones del módulo, deshabilite el parámetro "open_basedir", porque el servidor está asignado solo para nuestro proyecto, queremos decir que la seguridad en general no será violada.
Resultado:
El resultado, como dicen, está DISPONIBLE
Queda por reescribir los componentes "torcidos" y el proyecto volará.
También instalé y configuré nginx como servidor proxy para Apache. No doy fotos porque Los números no han cambiado mucho. Pero según la evaluación subjetiva, las páginas comenzaron a cargarse un par de veces más rápido.
La plantilla aún se genera durante mucho tiempo (el tiempo de generación es casi el mismo que el del núcleo del sistema); aparentemente, el desarrollador anterior no escribió el código de manera óptima. Para desmontar el código de otro no hay tiempo, ni presupuesto, ni ganas. Es más fácil, rápido y económico escribir su código desde cero.
En general: El módulo Performance es una herramienta muy útil y conveniente para depurar el trabajo del proyecto y el servidor. Por lo que gracias a sus desarrolladores.
PD Personalmente, tengo poca experiencia con Linux. Con FreeBSD se familiarizó de cerca en el primero. Me sorprendió que después de instalar algún software, los archivos de configuración generalmente están vacíos (por ejemplo, MySQL). Estaba satisfecho con la facilidad de instalar software desde los "puertos".
Optimización de la infraestructura de bases de datos y entornos virtuales
Mejore el rendimiento de su infraestructura de base de datos actual y obtenga recomendaciones para una mayor optimización con los servicios en la nube.
El proyecto de Optimización del Servidor es relevante en los siguientes casos:
Optimización de memoria y almacenamiento en disco El principal factor que afecta el rendimiento de cualquier base de datos moderna es el subsistema de E/S. Analizaremos la naturaleza de la carga en la base de datos y brindaremos recomendaciones para optimizar el almacenamiento y la RAM en términos de velocidad y confiabilidad del almacenamiento de información.
Optimización del rendimiento de la base de datos Cada desarrollador de base de datos tiene sus propias recomendaciones para optimizar el rendimiento de un servidor o clúster. Los especialistas de nuestra empresa realizaron varias opciones para configurar la base de datos para diferentes tipos de carga de trabajo y pueden ofrecer configuraciones de rendimiento óptimas. Estas recomendaciones siempre están respaldadas con enlaces a la documentación y las mejores prácticas del proveedor para implementar software.
Análisis de logs de errores y detección de problemas críticos Los registros de errores son la principal fuente de información sobre el funcionamiento de la base de datos y los problemas en las aplicaciones que utilizan esta base de datos. Nuestros especialistas han desarrollado sus propias herramientas para analizar problemas y encontrar métodos para eliminarlos. Como regla, cualquier proyecto necesariamente contiene un análisis de los registros del servidor de la base de datos, en base a los cuales se dan recomendaciones para la optimización.
Optimización de base de datos(disparadores, índices, mensajes de seguimiento) Todas las bases de datos modernas recopilan información sobre su propio rendimiento en forma de un conjunto de segmentos de datos que le permiten determinar la eficiencia con la que funciona la base de datos con el subsistema de disco, caché de consultas, suficiencia de índices en tablas, etc. Analizaremos esta información y proporcionaremos recomendaciones sobre cómo realizar cambios en la configuración.
Construcción de una arquitectura tolerante a fallas El desarrollo de una arquitectura base con un modo de operación 24x7 con un tiempo de inactividad de no más de 2 horas por año implica un aumento en la cantidad de servidores, un estudio detallado de la parte de software y la eliminación de un punto único de falla. Lo ayudaremos a resolver este problema y, además, recibirá una política para realizar copias de seguridad y restaurar tanto el código ejecutable de la base de datos como todos los datos.
Aprovisionamiento de una base de datos de alta disponibilidad con un tiempo de respuesta mínimo Nuestros expertos te ayudarán a optimizar tus bases de datos para obtener la máxima velocidad de tu servidor. Se realiza el análisis de retrasos, la eficiencia del caché, índices, "consultas pesadas", el trabajo del optimizador de consultas y se dan recomendaciones para mejorar la eficiencia del trabajo.
Optimización de bases de datos para aplicaciones específicas Optimizamos y ajustamos las bases de datos MS SQL y Oracle para aplicaciones comerciales, como sistemas de gestión de documentos, sistemas de contabilidad de gestión, soluciones de portal, etc. Al realizar el trabajo, nos guiamos por las recomendaciones de los proveedores de software para configurar el software, así como por nuestro propia experiencia de optimización DB para varios tipos de carga de usuario.
Elección de una plataforma de hardware para implementar software de base de datos Los proveedores de bases de datos modernas tienen listas de hardware que son óptimos para ejecutar una base de datos. Podemos analizar sus preferencias de proveedores, encontrar servidores en los que pueda implementar software de base de datos o preparar una especificación para la compra de equipos de base de datos.
Análisis y optimización del entorno de base de datos virtual Los problemas de rendimiento de cualquier software en un entorno virtualizado suelen estar relacionados con las peculiaridades de cada hipervisor específico y el hardware en el que se ejecutan los servidores virtuales. Nuestros expertos lo ayudarán a identificar las causas de las ralentizaciones y optimizarán la ubicación del software de la base de datos en los servidores virtuales de su centro de datos.
Obtenga una estimación precisa del proyecto de nuestro equipo o aprenda cómo realizar una encuesta sin costo para usted con el soporte del proveedor.
Por qué es necesaria la optimización del servidor
5 (100%) 2 voto[s]El mundo moderno de los negocios ha conquistado durante mucho tiempo la inmensidad de Internet. Pero construir un sitio web rentable no es todo lo que se necesita para administrar un negocio exitoso. Si ya tiene un sitio de este tipo, entonces debería pensar en optimizar el servidor.
El hecho es que con un aumento en el número de clientes de su sitio, definitivamente se requiere su servicio cómodo y rápido (después de todo, esta es la única forma de desarrollar con éxito su negocio). Es en tales situaciones que comienzan a surgir los siguientes problemas:
Son estos problemas los que indicarán que el servidor está sobrecargado y no puede realizar sus funciones directas.
Por supuesto, en este caso, existe el riesgo de perder incluso a sus clientes habituales. Incluso los más pacientes pueden cambiar a un sitio de la competencia cuando se cansan de esperar para acceder al tuyo.
Los expertos recomiendan: prestar atención al rendimiento del servidor lo antes posible y comenzar a optimizarlo. Tal paso permitirá que todos los clientes se sientan cómodos en su sitio, lo que, en consecuencia, afectará el desarrollo de su negocio.
Como ves, el funcionamiento óptimo de cualquier sitio web está directamente relacionado con . Si el cliente visita la página del sitio, la solicitud se envía al servidor, donde se procesa y se genera una respuesta. La velocidad de dicho procedimiento de respuesta depende del servidor, es decir, de sus características de rendimiento. A la velocidad mínima, el servidor debe acelerarse para aumentar la velocidad de respuesta.
Muchos usuarios dan el paso de reemplazar el hardware con funciones más potentes para acelerar los servidores. Pero tal salida no siempre se justifica y no permite resolver los problemas que han surgido.
Nuestros expertos sugieren ir por el otro lado:
Este enfoque ayudará a acelerar el rendimiento del servidor.
Hay varias formas de mejorar el rendimiento del servidor, pero la optimización es la mejor.
Este tipo se puede atribuir a una optimización prematura, aunque ayudará a aumentar el tiempo de respuesta general del sitio. Entre las optimizaciones estándar, debe prestar atención a reset_timedout_connection; enviar archivo; tcp_nopush y tcp_nodelay.
Optimización de back-end
Hay muchas ideas sobre cómo mejorar el rendimiento de MySQL en Internet, porque todo proyecto web, tarde o temprano, se enfrenta a limitaciones de memoria, disco o procesador. Por lo tanto, las soluciones simples no ayudarán a resolver el problema, vale la pena dedicar más tiempo a los generadores de perfiles (dtrace, systemtap y oprofile), así como usar una gran cantidad de software adicional. Es necesario no solo poder usar perfectamente los índices, ordenarlos y agruparlos, sino también saber cómo funciona todo dentro de MySQL. También debe conocer las ventajas y desventajas de los diferentes motores de almacenamiento, comprender la caché de consulta y EXPLAIN.
Hay varias formas de optimizar MySQL, incluso sin cambiar los códigos, porque la mitad de la optimización del servidor se puede realizar de forma semiautomática utilizando las utilidades tuningprimer, mysqltuner y mysqlsla.
postgresql
El sistema Postgres es bastante versátil, porque pertenece a la clase Enterprise y Skype funciona bien en él, pero al mismo tiempo se puede instalar incluso en teléfono móvil. Entre los 200 parámetros disponibles, 45 de ellos son básicos y son responsables de la sintonización.
En Internet puede encontrar mucha información útil sobre cómo ajustar Postgres. Pero algunos artículos ya están desactualizados, por lo que debe comenzar desde la fecha de publicación y prestar atención a la información donde se usa la clave vacuum_mem, o en nuevas versiones de maintenance_mem. Los programadores avanzados podrán encontrar muchos tratados de calidad, a continuación enumeramos solo aquellos conceptos básicos que ayudarán al usuario promedio a mejorar su proyecto.
Descarga de base de datos
Para optimizar el funcionamiento de la base de datos y aumentar su rendimiento, debe utilizarla lo menos posible.
No entienda la mitad de lo que está escrito, no importa.