Problema de memoria con meteoritos arriba(mup) en Ocean Digital
digital-ocean meteor-up (2)
El problema de memoria proviene del uso de $ 5 Droplet de DigitalOcean. Para resolver el problema, agregué el intercambio al servidor, como se explica en detalle a continuación.
Cree y habilite el archivo de intercambio utilizando el comando dd:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
"Of = / swapfile" designa el nombre del archivo. En este caso, el nombre es swapfile.
A continuación, prepare el archivo de intercambio creando un área de intercambio de Linux:
sudo mkswap /swapfile
Los resultados muestran:
Setting up swapspace version 1, size = 262140 KiB
no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
Termine activando el archivo de intercambio:
sudo swapon /swapfile
Luego podrá ver el nuevo archivo de intercambio cuando vea el resumen de intercambio.
swapon -s
Filename Type Size Used Priority
/swapfile file 262140 0 -1
Este archivo durará en el servidor privado virtual hasta que la máquina se reinicie. Puede asegurarse de que el intercambio sea permanente agregándolo al archivo fstab.
Abra el archivo:
sudo nano /etc/fstab
Pega en la siguiente línea:
/swapfile none swap sw 0 0
La suavidad en el archivo debe establecerse en 10. Omitir este paso puede provocar un rendimiento deficiente, mientras que si se establece en 10, el intercambio actuará como un búfer de emergencia, lo que evitará la falta de memoria.
Puedes hacer esto con los siguientes comandos:
echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
To prevent the file from being world-readable, you should set up the correct permissions on the swap file:
sudo chown root:root /swapfile
sudo chmod 0600 /swapfile
No pude encontrar publicaciones existentes relacionadas con mi problema. En un Digital Ocean Droplet, la configuración del mup fue bien, pero cuando trato de implementar, obtengo el siguiente error. ¿Algunas ideas? ¡Gracias!
root@ts:~/ts-deploy# mup deploy
Meteor Up: Production Quality Meteor Deployments
Building Started: /root/TS/
Bundling Error: code=137, error:
-------------------STDOUT-------------------
Figuring out the best package versions to use. This may take a moment.
-------------------STDERR-------------------
bash: line 1: 31217 Killed meteor build --directory /tmp/dc37af3e-eca0-4a19-bf1a-d6d38bb8f517
A continuación se encuentran los registros. nodo -v indica que estoy usando 0.10.31. ¿Cómo puedo verificar qué script está saliendo con el error? ¿Alguna otra idea? ¡Gracias!
error: Forever detected script exited with code: 1
error: Script restart attempt #106
Meteor requires Node v0.10.29 or later.
error: Forever detected script exited with code: 1
error: Script restart attempt #107
Meteor requires Node v0.10.29 or later.
error: Forever detected script exited with code: 1
error: Script restart attempt #108
stepping down to gid: meteoruser
stepping down to uid: meteoruser
Después de volver a una copia de seguridad anterior de DO Droplet, y volver a ejecutar la configuración de mup y la implementación de mup, ahora obtengo esto en la salida de línea de comando
Building Started: /root/TS
Bundling Error: code=134, error:
-------------------STDOUT-------------------
Figuring out the best package versions to use. This may take a moment.
-------------------STDERR-------------------
FATAL ERROR: JS Allocation failed - process out of memory
bash: line 1: 1724 Aborted (core dumped) meteor build --directory /tmp/bfdbcb45-9c61-435f-9875-3fb304358996
y esto en los registros:
>> stepping down to gid: meteoruser
>> stepping down to uid: meteoruser
Exception while invoking method ''login'' TypeError: Cannot read property ''0'' of undefined
at ServiceConfiguration.configurations.remove.service (app/server/accounts.js:7:26)
at Object.Accounts.insertUserDoc (packages/accounts-base/accounts_server.js:1024)
at Object.Accounts.updateOrCreateUserFromExternalService (packages/accounts-base/accounts_server.js:1189)
at Package (packages/accounts-oauth/oauth_server.js:45)
at packages/accounts-base/accounts_server.js:383
at tryLoginMethod (packages/accounts-base/accounts_server.js:186)
at runLoginHandlers (packages/accounts-base/accounts_server.js:380)
at Meteor.methods.login (packages/accounts-base/accounts_server.js:434)
at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1594)
at packages/ddp/livedata_server.js:648
Exception while invoking method ''login'' TypeError: Cannot read property ''0'' of undefined
at ServiceConfiguration.configurations.remove.service (app/server/accounts.js:7:26)
at Object.Accounts.insertUserDoc (packages/accounts-base/accounts_server.js:1024)
at Object.Accounts.updateOrCreateUserFromExternalService (packages/accounts-base/accounts_server.js:1189)
at Package (packages/accounts-oauth/oauth_server.js:45)
at packages/accounts-base/accounts_server.js:383
at tryLoginMethod (packages/accounts-base/accounts_server.js:186)
at runLoginHandlers (packages/accounts-base/accounts_server.js:380)
at Meteor.methods.login (packages/accounts-base/accounts_server.js:434)
at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1594)
at packages/ddp/livedata_server.js:648
Esto solo funcionó para mí al aumentar el espacio de intercambio a 1 gb:
Make all swap off
sudo swapoff -a
Resize the swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
Make swapfile usable
sudo mkswap /swapfile
Make swapon again
sudo swapon /swapfile