Hi all
I'm having problems in using Imagemagick to rotate some tiff images.
I'm using this command: mogrify -monitor -rotate -90 0088.tif
It's taking about 4 hours for a few images like this one:
$ identify 0088.tif
0088.tif TIFF 15597x8864, 435kb 2.710u 0:14
$ tiffinfo 0088.tif
Image Width: 15597 Image Length: 8864
Resolution: 300, 300 pixels/inch
Compression Scheme: CCITT Group 4
Rows/Strip: 8864
But this one takes just 30 seconds!
$ identify 0087.tif
0087.tif TIFF 11757x8376, 498kb 1.150u 0:02
$ tiffinfo 0087.tif
Image Width: 11757 Image Length: 8376
Resolution: 300, 300 pixels/inch
Bits/Sample: 1
Compression Scheme: CCITT Group 4
Rows/Strip: 8376
Both are similarly sized images. What's happening with the slow ones is that the
hard disk stays on continuosuly like its using swap a lot but I'm not really
sure. Looking at top when the process is running shows that occasionally the
process status is 'R' for running but most often its 'D' for uninterruptable
sleep.
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 3 0 52924 10220 1917260 0 0 196 3162 339 65 0 5 38 57
;casteret: /home/mikel~$
Example of top showing mogrify in 'D' state:
top - 13:09:27 up 27 min, 3 users, load average: 3.58, 3.29, 2.57
Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 2.0%sy, 0.0%ni, 49.8%id, 46.3%wa, 0.5%hi, 1.3%si, 0.0%st
Mem: 2067444k total, 2014736k used, 52708k free, 10820k buffers
Swap: 2097144k total, 0k used, 2097144k free, 1916280k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3543 mikel 18 0 13976 5768 2548 D 4 0.3 1:37.27 mogrify
1146 root 10 -5 0 0 0 D 0 0.0 0:03.42 kjournald
3052 root 16 0 1812 620 536 S 0 0.0 0:00.73 hald-addon-stor
1 root 15 0 1944 636 544 S 0 0.0 0:01.53 init
2 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0
Example of top showing mogrify in 'R' state:
top - 13:11:21 up 29 min, 3 users, load average: 3.39, 3.36, 2.68
Tasks: 85 total, 2 running, 83 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 1.7%sy, 0.0%ni, 47.3%id, 48.0%wa, 1.0%hi, 1.8%si, 0.0%st
Mem: 2067444k total, 2015712k used, 51732k free, 11092k buffers
Swap: 2097144k total, 0k used, 2097144k free, 1917764k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3543 mikel 18 0 13976 5768 2548 R 3 0.3 1:40.86 mogrify
744 root 10 -5 0 0 0 S 0 0.0 0:00.06 ata/0
1146 root 10 -5 0 0 0 D 0 0.0 0:03.70 kjournald
3470 root 30 15 3744 2184 692 S 0 0.1 0:01.26 preload
1 root 15 0 1944 636 544 S 0 0.0 0:01.53 init
Imagemagic tools can have the limited set for memory and I have checked that it
is using whats available. I have 2G RAM.
$ mogrify -list resource
File Area Memory Map Disk
------------------------------------------------
768 1010.0mb 1.97gb 3.95gb 4.000eb
I have tried setting nice to -20 for this process but it does not make much
difference if at all to the running time.
I have also killed of lots of daemons that were eating resources.
Questions:
What is 'uninterruptable sleep' ?
Anyhow pointers on how I can speed things up.
Why oh why might a few dozen images / 200 take so long when others take 30
seconds?
Mike Lake
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html