How to speed-up Pyramid data creation?
Posted: Mon Jan 23, 2017 4:42 pm
Dear OME-Team,
unfortunately we are facing once again some issues with Pyramid data creation on our OMERO server.
A user discovered some TIF images that he had imported into OMERO before Christmas and for which no Pyramid data were calculated. When having a closer look at our system it turned out that apparently since quite some time no Pyramid data had been created at all.
After a restart of the OMERO services, Pyramid data creation re-started as well, but now there seems to be an substantial backlog of unprocessed data and overall progress is very slowly.
A (truncated) PixelData Log file is attached.
PixelData Settings:
Today, I tried to better understand the coresponding parameters and started playiing around with them, however I was not able to substantially improve Pyramid data creation speed.
Our server has 12 CPU cores, 256 GB RAM, is running CentOS 7.1, OMERO 5.2.5-ice35. The OMERO data store resides on a GPFS file-system.
Any help/feedback/recommendation would be greatly appreciated to shed some light on this topic.
Many thanks in advance for your support, best,
-Rainer
unfortunately we are facing once again some issues with Pyramid data creation on our OMERO server.
A user discovered some TIF images that he had imported into OMERO before Christmas and for which no Pyramid data were calculated. When having a closer look at our system it turned out that apparently since quite some time no Pyramid data had been created at all.
After a restart of the OMERO services, Pyramid data creation re-started as well, but now there seems to be an substantial backlog of unprocessed data and overall progress is very slowly.
A (truncated) PixelData Log file is attached.
- Code: Select all
JVM Settings:
============
blitz=-Xmx96000m -XX:MaxPermSize=1g -XX:+IgnoreUnrecognizedVMOptions # Settings({'max_system_memory': '240000', 'system_memory': '240000', 'percent': '40', 'strategy': 'percent'})
indexer=-Xmx24000m -XX:MaxPermSize=1g -XX:+IgnoreUnrecognizedVMOptions # Settings({'max_system_memory': '240000', 'system_memory': '240000', 'percent': '10', 'strategy': 'percent'})
pixeldata=-Xmx72000m -XX:MaxPermSize=1g -XX:+IgnoreUnrecognizedVMOptions # Settings({'max_system_memory': '240000', 'system_memory': '240000', 'percent': '30', 'strategy': 'percent'})
repository=-Xmx24000m -XX:MaxPermSize=1g -XX:+IgnoreUnrecognizedVMOptions # Settings({'max_system_memory': '240000', 'system_memory': '240000', 'percent': '10', 'strategy': 'percent'})
PixelData Settings:
- Code: Select all
omero.pixeldata.cron=* * * * * ?
omero.pixeldata.repetitions=2
omero.pixeldata.threads=12
Today, I tried to better understand the coresponding parameters and started playiing around with them, however I was not able to substantially improve Pyramid data creation speed.
Our server has 12 CPU cores, 256 GB RAM, is running CentOS 7.1, OMERO 5.2.5-ice35. The OMERO data store resides on a GPFS file-system.
- I played around with the no. of pixeldata threads, however they seem to stay always the same independent from the actual settings I chose (or I did something wrong which I of course cannot exclude). I can always see 5 _controlling_ threads and a total no. of threads via "ps -eLF" with a name "-Domero.name=PixelData-0" of 42?
- I understood the "omero.pixeldata.repetitions=2" option in a way that it could be beneficial to deal with a backlog of pixel to process and therefore changed it to "2". However, no effect as far as I can judge compared to the default value before. I tried to find more info about this setting but did not really succeed. What am I doing wrong here?
- I do not really understand in which order missing pixel data will be processed. When looking at the currently processed data as they appear in the PixelData-0.log file, it seems to be a real mixture of older and newer data, and not e.g. from the oldest towards the current data?
- Processing seems to be very slow as seen by an 1.9 MB file which took 15 min. to complete (extract from PixelData-0.log):
Import Date: 2016-12-14 16:21:04
Dimensions (XY): 1600 x 1200
Pixels Type: uint8
Pixels Size (XYZ) (µm):
84.67 x 84.67
Z-sections/Timepoints: 1 x 1- Code: Select all
du -sh /export/omero/OMERO/ManagedRepository/schibe02_2704/2016-12/14/17-21-03.765/008-HA_HA.tif
1.9M /export/omero/OMERO/ManagedRepository/schibe02_2704/2016-12/14/17-21-03.765/008-HA_HA.tif
[omeronas@omero02 OMERO.server]$ grep "2017-01-23" var/log/PixelData-0.log | grep "%)" | grep 335562
2017-01-23 13:25:45,074 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 1/4797 (0%).
2017-01-23 13:27:13,995 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 480/4797 (9%).
2017-01-23 13:29:04,254 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 959/4797 (19%).
2017-01-23 13:30:26,455 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 1438/4797 (29%).
2017-01-23 13:31:30,678 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 1917/4797 (39%).
2017-01-23 13:33:22,824 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 2396/4797 (49%).
2017-01-23 13:34:56,985 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 2875/4797 (59%).
2017-01-23 13:35:53,342 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 3354/4797 (69%).
2017-01-23 13:37:37,510 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 3833/4797 (79%).
2017-01-23 13:39:19,983 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 4312/4797 (89%).
2017-01-23 13:40:25,867 INFO [ ome.io.nio.PixelsService] (2-thread-1) Pyramid creation for Pixels:335562 4791/4797 (99%).
=> could it be that we a facing file-system performance issues (although GPFS should be quite fast)? - Is there a way to determine the amount of data having no Pyramid data yet? Just curious to know what has accumulated over the past weeks ...
- Any ideas _why_ the PixelData threads died/stopped working and how this could be prevented/monitored?
Any help/feedback/recommendation would be greatly appreciated to shed some light on this topic.
Many thanks in advance for your support, best,
-Rainer