Considere el siguiente comando para el paquete imagemagick:
sudo convert -resize 460x200 /path/to/test1.jpg /path/to/test2.jpg
Ahora test1.jpg
es una imagen bastante grande (12.5MB), pero de tamaños no desconocidos, pero el servidor desde el que estoy trabajando solo tiene 1G de memoria ( Amazon EC2 t2.micro si ayuda)
No se produce ningún error y, sin embargo, no test2.jpg
se crea ninguno . He probado esto con imágenes más pequeñas y funciona bien. Hubiera pensado 1G si la memoria fuera suficiente para gestionar un cambio de tamaño, pero ¿quizás no?
¿Cuáles son mis opciones? ¿Tengo que obtener más memoria o me falta algo?
Cualquier sugerencia es muy bienvenida!
Ediciones solicitadas
el resultado de strace muestra: +++ killed by SIGKILL +++
junto con muchos comandos que se ven normales (abrir /usr/share/local
y leer cadenas largas, que supongo que son datos de imagen)
gratis me da:
total used free shared buffers cached
Mem: 1016292 278348 737944 6412 460 13356
-/+ buffers/cache: 264532 751760
Swap: 0 0 0
Por lo tanto, parece que el intercambio no está habilitado, por lo que buscaré crear un archivo de intercambio para ver si esto soluciona mis problemas.
El archivo me da:
testprint10Mbv2.jpg: JPEG image data, EXIF standard
También pegaría el / path / to / img completo pero desafortunadamente contiene datos confidenciales (direcciones de correo electrónico del cliente, etc.)
-limit memory 64MiB
(32MiB es probablemente demasiado pequeño. El valor predeterminado es 1.5GiB). Y debería darle una salida descriptiva en caso de que falle.
strace
anexo delante del comando, vea qué llamadas al sistema se realizan, si se producen errores. Háganos saber
sudo
este comando?