miércoles, 10 de agosto de 2016

Mariadb se cae en centos 7

Hace varios meses tenia un problema con Mariadb en Centos 7. Se pasaba cayendo el servidor, por unos problemas de memoria, se quedaba sin memoria.

Entonces buscando, buscando y encontre la solución.

Agregue en [mysqld] del archivo /etc/my.cnf las siguientes lineas:

performance_schema = off
innodb_buffer_pool_size=64M



performance_schema  Es una característica para supervisar el rendimiento del servidor que se introdujo en MariaDB 5.5 .

innodb_buffer_pool_size  InnoDB mantiene un área de almacenamiento llamado el grupo de búfer de caché de datos e índices en la memoria. Trabaja como un grupo de búfer y mantiene los datos de acceso frecuente en la memoria, es un aspecto importante de la sintonización de MySQL. Para obtener información acerca de cómo el InnoDBtrabaja agrupación de almacenamiento intermedio, ver InnoDB Buffer Pool LRU algoritmo .

Después de agregar estas lineas se agrego una swap:

Compruebe el Sistema de Información de Swap

Antes de empezar, hay que echar un vistazo a nuestro servidor de almacenamiento de ver si ya tenemos un poco de espacio de intercambio disponible. Si bien podemos tener múltiples archivos de intercambio o particiones de intercambio, uno debe ser lo suficientemente general.
Podemos ver si el sistema tiene cualquier intercambio configurado mediante el uso swapon, una utilidad de intercambio de propósito general. Con la -sbandera, swaponse mostrará un resumen de uso del intercambio y la disponibilidad en nuestro dispositivo de almacenamiento:
swapon -s
Si no se devuelve nada por el comando, a continuación, el resumen estaba vacía y no existe ningún archivo de intercambio.
Otra forma de comprobación de espacio de intercambio es la freeutilidad, que nos muestra el uso de memoria total del sistema. Podemos ver nuestra memoria actual y el uso del intercambio (en megabytes) escribiendo:
free -m
             total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
Swap:            0          0       4095
Como se puede ver, nuestro espacio de intercambio total en el sistema es 0. Esto coincide con lo que vimos swapon.

Compruebe espacio de almacenamiento disponible

La forma típica de asignación de espacio para intercambio es utilizar una partición independiente que se dedica a la tarea. Sin embargo, la alteración del esquema de partición no siempre es posible debido a limitaciones de hardware o software. Afortunadamente, sólo podemos crear fácilmente un archivo de intercambio que resida en una partición existente.
Antes de hacer esto, debemos ser conscientes de nuestro uso de la unidad actual. Podemos obtener esta información escribiendo:
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        59G  1.5G   55G   3% /
devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.3M  2.0G   1% /run
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
Nota: el -hindicador simplemente le dice dha la información de accionamiento de salida en un formato de lectura-humana de usar. Por ejemplo, en lugar de dar salida a la cantidad en bruto de bloques de memoria en una partición, df -hnos dirá el uso del espacio y la disponibilidad de M (megabytes) o G (para gigabytes).
Como se puede ver en la primera línea, nuestra partición de almacenamiento cuenta con 59 gigabytes disponibles, así que tenemos un poco de espacio para trabajar. Tenga en cuenta que se trata de un ejemplo VPS fresca de tamaño mediano, por lo que su uso real podría ser muy diferente.
Aunque hay muchas opiniones sobre el tamaño apropiado de un espacio de intercambio, que realmente depende de sus requisitos de aplicación y sus preferencias personales. En general, una cantidad igual o el doble de la cantidad de memoria en su sistema es un buen punto de partida.
Ya que mi sistema tiene 4 gigabytes de memoria, y duplicación que toman un trozo más grande de mi espacio de almacenamiento que estoy dispuesto a desprenderse, voy a crear un espacio de intercambio de 4 gigabytes para que coincida con la memoria de mi sistema.

Crear un archivo de intercambio

Ahora que sabemos que nuestro espacio de almacenamiento disponible, podemos ir sobre la creación de un archivo de intercambio dentro de nuestro sistema de ficheros. Vamos a crear un archivo llamadoswapfileen nuestra raíz ( /directorio), aunque se puede nombrar el archivo de algo más si así lo prefiere. El archivo debe asignar la cantidad de espacio que queremos para nuestro archivo de intercambio.
La forma más rápida y sencilla de crear un archivo de intercambio es mediante el uso fallocateEste comando crea un archivo de un tamaño preasignado al instante. Podemos crear un archivo de 4 gigabytes escribiendo:
sudo fallocate -l 4G /swapfile
Después de introducir su contraseña para autorizar a sudolos privilegios, el archivo de intercambio se creará casi instantáneamente, y el símbolo será devuelto. Podemos comprobar que la cantidad correcta de espacio estaba reservado para intercambio mediante el uso de ls:
ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Oct 30 11:00 /swapfile
Como se puede ver, nuestro archivo de intercambio se ha creado con la cantidad correcta de espacio reservado.

Habilitar un archivo de intercambio

En este momento, se creó nuestro archivo, pero nuestro sistema no sabe que esto se supone que se utilizará como intercambio. Tenemos que decirle a nuestro sistema para dar formato a este archivo como swap y luego activarlo.
Antes de hacer eso, hay que ajustar los permisos en nuestro archivo de intercambio de forma que no pueda ser leída por nadie más que la cuenta root. Permitir que otros usuarios puedan leer o escribir en este archivo sería un gran riesgo para la seguridad. Podemos bloquear los permisos con chmod:
sudo chmod 600 /swapfile
Esto restringirá tanto los permisos de lectura y escritura a la cuenta de usuario root. Podemos comprobar que el archivo de intercambio tiene los permisos correctos mediante el uso de ls -lhnuevo:
ls -lh /swapfile
-rw------- 1 root root 4.0G Oct 30 11:00 /swapfile
Ahora que nuestro archivo de intercambio es más seguro, podemos decirle a nuestro sistema para configurar el espacio de intercambio para su uso escribiendo:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf
Nuestro archivo de intercambio está ahora listo para ser utilizado como un espacio de intercambio.Podemos empezar a utilizar el comando:
sudo swapon /swapfile
Para verificar que el procedimiento ha sido exitoso, podemos comprobar si nuestros informes del sistema de espacio swap ahora:
swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        4194300 0     -1
Esta salida confirma que tenemos un nuevo archivo de intercambio. Podemos utilizar la freeutilidad de nuevo para corroborar nuestros resultados:
free -m
             total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
Swap:         4095          0       4095
Nuestro intercambio se ha establecido con éxito, y nuestro sistema operativo comenzará a utilizar según sea necesario.

Hacer permanente el archivo de intercambio

Nuestro archivo de intercambio está activado en el momento, pero cuando reinicio, el servidor no permitirá automáticamente el archivo para su uso. Podemos cambiar eso mediante la modificación delfstabarchivo, que es una tabla que gestiona los sistemas de ficheros y particiones.
Editar el archivo con sudoprivilegios en el editor de texto:
sudo nano /etc/fstab
En la parte inferior del archivo, es necesario agregar una línea que le dirá al sistema operativo para utilizar automáticamente el archivo de intercambio que creó:
/swapfile   swap    swap    sw  0   0
Cuando haya terminado de agregar la línea, puede guardar y cerrar el archivo. El servidor comprobará este archivo en cada arranque, por lo que el archivo de intercambio estará lista para su uso a partir de ahora.

Ajustar su configuración de intercambio (Opcional)

Hay algunas opciones que se pueden configurar que tendrá un impacto en el rendimiento del sistema cuando se trata de intercambio. Estas configuraciones son opcionales en la mayoría de los casos, y los cambios que realice dependerá de sus necesidades de aplicación y sus preferencias personales.

swappiness

El swappinessparámetro determina la frecuencia con su sistema intercambia los datos de la memoria para el espacio de intercambio. Este es un valor entre 0 y 100 que representa el porcentaje de uso de la memoria que activará el uso de intercambio.
Con valores cercanos a cero, el sistema no va a intercambiar datos a la unidad a menos que sea absolutamente necesario. Recuerde, las interacciones con el archivo de intercambio son "caros", ya que son mucho más lento que las interacciones con la memoria, y esta diferencia en la velocidad de lectura y escritura puede causar una reducción significativa en el rendimiento de una aplicación. Diciendo al sistema que no se basan en el intercambio tanto en general hará que su sistema más rápido.
Los valores que están más cerca de 100 tratarán de poner más datos en canje en un esfuerzo por mantener más memoria libre. Dependiendo de perfil de memoria de sus aplicaciones, o lo que usted está utilizando su servidor para, esta podría ser la mejor opción en algunos casos.
Podemos ver el valor actual swappiness al leer el swappinessfichero de configuración:
cat /proc/sys/vm/swappiness
30
CentOS 7 por defecto a un entorno swappiness de 30, que es un término medio justo para la mayoría de los ordenadores personales y servidores locales. Para un sistema VPS, probablemente nos queremos mover más cerca de 0.
Podemos establecer el swappiness a un valor diferente utilizando el sysctlcomando. Por ejemplo, para establecer el swappiness a 10, podríamos escribir:
sudo sysctl vm.swappiness=10
vm.swappiness = 10
Esta configuración se mantendrá hasta el próximo reinicio. Para realizar el ajuste persisten tras el reinicio, podemos añadir la línea emitida en nuestro sysctlfichero de configuración:
sudo nano /etc/sysctl.conf
Agregue su entorno swappiness a la parte inferior del archivo:
vm.swappiness = 10
Cuando haya terminado de agregar la línea, puede guardar y cerrar el archivo. El servidor ahora se establecerá automáticamente el swappiness al valor declarado que en cada arranque.

Presión caché

Otro de los valores relacionados con el que es posible que desee modificar es el vfs_cache_pressure.Este ajuste afecta el almacenamiento de entradas especiales del sistema de ficheros de metadatos.Constantemente leyendo y refrescante esta información es generalmente muy costoso, por lo que su almacenamiento en la memoria caché durante más tiempo es excelente para el rendimiento del sistema.
Se puede ver el valor actual de esta presión caché mediante la consulta del procsistema de archivos nuevo:
cat /proc/sys/vm/vfs_cache_pressure
100
Tal como está configurado actualmente, nuestro sistema elimina la información de i-nodo de la caché demasiado rápido. Podemos establecer a un escenario más conservador, como el 50, mediante el uso desysctl:
sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50
De nuevo, esto sólo es válido para la sesión actual. Podemos cambiar eso mediante la adición a nuestro archivo de configuración, como lo hicimos con nuestro entorno swappiness:
sudo nano /etc/sysctl.conf
En la parte inferior, agregue la línea que especifica el nuevo valor:
vm.vfs_cache_pressure = 50
Cuando haya terminado de agregar la línea, puede guardar y cerrar el archivo. El servidor ahora se ajusta automáticamente la presión de caché para el valor declarado que en cada arranque.

Conclusión

Siguiendo los pasos de esta guía, se le ha dado a su servidor un respiro en términos de uso de memoria.El espacio de intercambio es increíblemente útil para evitar algunos problemas comunes.
Si está ejecutando en OOM (de memoria) errores, o si encuentra que su sistema es incapaz de utilizar las aplicaciones que usted necesita, la mejor solución es optimizar sus configuraciones de aplicaciones o actualizar el servidor. Sin embargo, la configuración de espacio de intercambio puede darle más flexibilidad y que puede ayudar a comprar tiempo en un servidor menos potente.

No hay comentarios:

Publicar un comentario