Rozważ następujące polecenie dla pakietu imagemagick:
sudo convert -resize 460x200 /path/to/test1.jpg /path/to/test2.jpg
Teraz test1.jpg
jest dość duży obraz (12,5 MB), ale nie jest to niespotykane rozmiary, ale serwer, z którego pracuję, ma tylko 1G pamięci ( Amazon EC2 t2.micro, jeśli to pomaga)
Błąd nie test2.jpg
jest generowany , a jednak nie jest tworzony. Przetestowałem to na mniejszych obrazach i działa dobrze. Pomyślałbym, że 1G, gdyby pamięć wystarczała na zarządzanie zmianą rozmiaru, ale może nie?
Jakie mam opcje, czy muszę uzyskać więcej pamięci, czy coś brakuje?
Wszelkie sugestie są mile widziane!
Żądane zmiany
Dane wyjściowe strace pokazują: +++ killed by SIGKILL +++
wraz z dużą ilością poleceń, które wyglądają normalnie (otwieranie /usr/share/local
i czytanie długich ciągów, które, jak zakładam, są danymi obrazowymi)
za darmo daje mi:
total used free shared buffers cached
Mem: 1016292 278348 737944 6412 460 13356
-/+ buffers/cache: 264532 751760
Swap: 0 0 0
Wygląda więc na to, że zamiana nie jest włączona, więc spróbuję utworzyć plik wymiany, aby sprawdzić, czy to rozwiąże moje problemy.
Plik daje mi:
testprint10Mbv2.jpg: JPEG image data, EXIF standard
Wkleiłbym również pełny / path / to / img, ale niestety zawiera poufne dane (adresy e-mail klientów itp.)
-limit memory 64MiB
(32MiB jest prawdopodobnie trochę za mały. Domyślnie 1,5GiB). I powinien dać ci jakieś opisowe dane wyjściowe na wypadek niepowodzenia.
strace
dołączonym przed nim poleceniem, sprawdź, jakie wywołania systemowe są wykonywane, zgłaszane błędy. Daj nam znać
sudo
tego polecenia?