Considere el siguiente comando para el paquete imagemagick:
sudo convert -resize 460x200 /path/to/test1.jpg /path/to/test2.jpg
Ahora test1.jpges 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.jpgse 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/localy 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.
straceanexo delante del comando, vea qué llamadas al sistema se realizan, si se producen errores. Háganos saber
sudoeste comando?