The deadline monitor’s refactoring for deadline8 was a life saver for us. In the past 1-2 years however, our farm and job counts grew in size,and it seems that we are hitting deadline’s usable performance limit again. We are getting more and more artist complaints about extremely slow monitor performance.
Please look at what could be improved, with job counts regularly between 15-25k, and slave count over 3.3k, things are getting pretty unbearable… :-\
I had about 160,000 idle jobs in my queue for awhile and it responded alright, but they just sat doing nothing. I’m guessing it might be the amount of data churn that’s syncing from the database.
Any guesses as to where we should concentrate our efforts?
I’ll run it through a profiler and see if anything obvious pops up! Its also a bit random, sometimes its fairly OK for me and most people, but then we have a few folks where it takes 30-40 seconds to switch between jobs. We usually start by making sure the job candidate filter is off, but most people know not to forget that option in an on state.
Oh! I bet the candidate filter is still written in Python. One day I need to sit down and write a job right-click script to handle that in better detail…
I haven’t done C# profiling on Windows. How deep are you going to run the profiling? Any amount would be great, but at the C/Kernel level gets kinda tricky.
Honestly, previously i simply did an uncompile of the GUI code, and interjected a python profiler… Not sure how possible that still is with the new monitor, but might still work ok.
I did a short deadline monitor session of clicking about, it seems that the biggest speed hit comes from JobListControl, SlaveListProxyModel, JobListProxyModel, all related to filters:
Thanks for all the profiling info Laszlo! I’ve moved it into the dev system.
It looks like things there are pretty lean, but it could be that moving more code in C++ could speed things up a little more. Waiting on the dev team to comment here though.