Simon icon Simon
Flexible server monitoring

Simon Monitor -- sorting and scheduling

hi david,

simon seems like a great app with lots of potential. I have some questions/concerns for you...

right now I've got about 55 tests running in my Simon Monitor queue. most of the tests are just pings, but about 9 of them are afp mounts. I've got Simon running on 10.4.10 on a 1.66 GHZ intel core duo Mini. each test runs every 30 seconds.

first issue: when everything is running "normally," I'm getting a delay of about 30 seconds in the queue. that is, if sorted by the "next check" column, I get a back-log of queued jobs waiting to run. when the next scheduled test is supposed to run (i.e., "next check" = 0 seconds), it can't run, because there are roughly 25-30 more jobs ahead of it that say "queued 1 second, queued 2 seconds, etc". basically, it seems that the tests are not running in parallel. it seems that Simon is running one test, then waiting for the result of that test, and then proceeding with the next test. it would be great if there was a way to speed up/optimize the test scheduler. I don't think it's an issue of having "wimpy hardware," because I'm watching the cpu monitor and it never reaches maximum.

second issue: seems like some bugs with the column sorting functionality. when I'm sorted on "Next Check" and I click on "Name" to sort on that column, something really strange happens to all the running tests. suddenly about half of the tests just stop running and they sit there with the "queued X seconds" value incrementing. if I click back on "Next Check," then those "frozen" jobs start getting processed and I get back into my "normal" 30 second back-log. also, sometimes when I sort on Next Check, it doesn't group all the paused jobs together -- sometimes I get some paused jobs at the top, some at the bottom, and some mixed in with the tests that are currently running. and sorting on "Service" does not seem very stable. if I sort on that column, it does group all the tests by service type, but within those groups the jobs are still being re-sorted again based on some other criteria. in other words, the tests are not stationary in the queue, something is causing them to move around within the queue.

Thanks in advance for any info/advice you may have regarding these issues.

David Sinclair's picture

Re: Simon Monitor -- sorting and scheduling

Hi.

Regarding your first question, yes, Simon intentionally only does one check at a time. It used to allow any number of checks at once, but this led to the machine getting bogged down when doing too many at once, and even freezing if all the available resources are used up. I added the queue mechanism to address this. However, when there are a lot of tests being checked fairly frequently, this can lead to excessive queuing. I plan to address this either by adding a preference to set how many checks to allow concurrently, or an automatic value.

Or I might just expose a "hidden" preference that's already there. You can disable the queue mechanism entirely by entering the following in Terminal:

defaults write com.dejal.simon2 PreventOverlappingChecks NO

As for the sorting issues, the first one is related to the above. Simon starts due checks by scanning through the list of tests in the current sort order, starting the first due one it encounters. So if it is sorted by Name and you have a large amount of tests, some will never get reached in that scan. The workaround is to sort by the Next Check column, or do the above Terminal command.

Regarding the jumping around of tests when sorted by Service, that is due to the way the sorting works; if the sorted column is equal for some tests, those tests are sorted in effectively random order within that grouping. I might see if I can improve that.