ruby on rails - rails - Rake activo: la precompilación se anula cuando hay una sesión de consola abierta en producción
digitalocean web hosting (5)
En mi servidor de producción, que está alojado en un océano digital, si eso ayuda, Ubuntu 12.04, tengo RoR 4 y rake 10.1.1.
Cuando implemento, ejecuto rake assets:precompile
, y he notado un problema extraño en el que si tengo una sesión de rails console
abierta cuando hago esto, obtengo el siguiente resultado
~# rake assets:precompile
~# Killed
Es principalmente molesto, pero la razón por la que quiero que se resuelva es cuando se contrata a nuevos desarrolladores, habrá una pesadilla en la implementación y la consola.
Gracias,
Brian
Esto podría ayudar a alguien. Para mí, ya que no podía usar el comando ''fallocate'', tenía que hacer:
sudo dd if=/dev/zero of=/mnt/4GB.swap bs=4096 count=1048576
sudo chmod 600 /mnt/4GBB.swap
sudo mkswap /mnt/4GB.swap
sudo swapon /mnt/4GB.swap
Esto utiliza una gran cantidad de RAM. Para verificar cuánta memoria RAM disponible tiene libre, use el comando
free -m
Esto mostrará la memoria RAM disponible en MB
Una solución temporal sería crear un espacio de intercambio.
Iba a agregar esto como un comentario a la publicación de Jason R anterior antes de ir a sus pasos, solo para asegurarme de que se trata de un problema de recursos de RAM.
también podrías correr
echo {1,2,3} > /proc/sys/vm/drop_caches
para limpiar la memoria caché, pero probablemente no se liberará lo suficiente.
Su proceso de precompilación probablemente se está eliminando porque se está quedando sin memoria RAM. Puede confirmar esto ejecutando top
en otra sesión ssh. Para solucionar este problema, cree un archivo de intercambio que se utilizará cuando la RAM esté llena.
Cree un espacio SWAP en Ubuntu Probablemente terminará necesitando algo de espacio de intercambio si planea usar Rails en la gota de RAM de Digital Ocean de 512 MB. Específicamente, se quedará sin memoria RAM cuando compile los activos, lo que provocará que el proceso se elimine de manera silenciosa y se eviten implementaciones exitosas.
Para ver si tiene archivos de intercambio:
sudo swapon -s
¿No se muestra el archivo de intercambio? Compruebe cuánto espacio de disco tiene:
df
Para crear un archivo de intercambio:
Paso 1: Asignar un archivo para intercambio
sudo fallocate -l 2048m /mnt/swap_file.swap
Paso 2: Cambiar permiso
sudo chmod 600 /mnt/swap_file.swap
Paso 3: Formatear el archivo para el dispositivo de intercambio
sudo mkswap /mnt/swap_file.swap
Paso 4: Habilitar el swap
sudo swapon /mnt/swap_file.swap
Paso 5: Asegúrate de que el intercambio esté montado cuando reinicies. Primero, abre fstab
sudo nano /etc/fstab
Finalmente, agregue la entrada en fstab (solo si no se agregó automáticamente)
# /etc/fstab
/mnt/swap_file.swap none swap sw 0 0
Guardar y Salir. Ya has terminado de añadir swap. Ahora tus rake assets:precompile
debe completarse sin ser matado.
Tengo una pila de opsworks en aws y me gustaría cambiar mi tipo de instancia. Estaba usando t1.micro y acabo de cambiarlo a t1.small
Muchas gracias.
Rake assets:precompile
es un proceso de comer memoria.
Así que asegúrate de tener suficiente RAM antes de usar ese comando