Mi servidor tiene 2 GB de RAM y 120 GB de SSD, además de algunas matrices RAID para almacenamiento. El sistema operativo es Debian 8 (Linux 3.16).
Tengo una aplicación MySQL intensa que tiene tmpdir
= /run/mysqld
, que es tmpfs
configurada por Debian a través de /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
Esto solía ser 20%VM
, que es de unos 384 millones. Corrí contra varios no space left on device
, así que lo 40%VM
aumenté, pero incluso con unos 763M todavía es demasiado pequeño.
Ahora debería agregar más RAM, pero por curiosidad, me gustaría conocer los límites aquí.
/dev/sdd1
está montado en/
tiene aproximadamente 50 GB gratis, y es bastante rápido (Samsung 850 EVO SSD)/dev/sdd5
es mi partición de intercambio, es 3.7G (la identificación del tipo fdisk es 82)TMPFS_SIZE
está establecido en40%VM
, lo que significa/run
763M
Ahora sé que tmpfs puede intercambiar, lo cual está bien para mí. Quiero que MySQL escriba en RAM siempre que sea posible, pero si necesita más memoria, puedo permitir que el sistema lo cambie en el SSD.
Entonces, con mi configuración, ¿puedo presionar /run
para ser:
- 300 millones de grande? Si. Ese fue el defecto.
- 1.5GB grande? Sí, lo intenté, MySQL usó hasta 1.3GB y el sistema funcionó de maravilla. Pero eso todavía es menos de la mitad de la memoria física + partición de intercambio.
- 2.5GB grande? Esto es más que memoria física, pero menos de la mitad de la memoria física + mi partición de intercambio.
- 4 GB de grande? Esto encajaría perfectamente en medio intercambio físico +
- ¿Más? como 10GB? ¿Puede usar el espacio libre
/
para intercambiar más?
Supongo que la regla de oro para la seguridad es TMPFS_SIZE
no tener más de swap + media memoria física. ¿Puedo ir más allá de esto sin aumentar la partición de intercambio?
Además, es posible poner 200%VM
en /etc/default/tmpfs
? He leído tmpfs(5)
sin saber si puedo poner> 100% en esto.
Por último, ¿debería hacerlo en su /etc/fstab
lugar y no tocar /etc/default/tmpfs
?
(hasta saber que solo lo he hecho mount -o remount
, todavía no reinicié el servidor)
Editar: para la última pregunta, sé que puede / puede modificarse /etc/fstab
(consulte la cita a continuación de la página del manual), sin embargo, quería saber la mejor práctica, porque nunca he tocado nada /etc/default
hasta ahora.
Se pueden usar opciones de montaje más complejas mediante la creación de una entrada adecuada en / etc / fstab.
Respuestas:
Pensé que podría probarlo, así que corrí:
Trabajado como un encanto:
Entonces lo llené un poco:
Resultado:
El sistema aún está en funcionamiento. La disponibilidad de intercambio se redujo, lo que demuestra que se utilizó:
/run
El intercambio total se reduce en la cantidad tomada por
/run
.Probaría 10 GB en una máquina virtual, porque no sé si el núcleo rechazará el remontaje o simplemente tendrá un comportamiento inesperado.
Todavía estoy buscando una respuesta real, pero la forma pragmática mostró que funciona.
fuente