Slashdot Mirror


Advanced Job Scheduling?

Kagato asks: "I'm trying to make my company's Unix boxes more mission critical in the area of job scheduling. Scheduling jobs in Unix has been around since the dawn of time. On most systems you have 'cron' and 'at' to provide most of your scheduling needs. But outside the basic world of 'do this at such time' there are a slew of commercial products that handle dependencies, failure routes, monitoring, dependent notification, etc. Commercial products of this type have been around for years. Is there anything like this available in the GNU and Open Source worlds? I've been looking at Freshmeat, SourceForge and Google. I've found the pickings for advanced scheduling are pretty slim."

12 of 24 comments (clear)

  1. Have you tried? by CableModemSniper · · Score: 2, Funny

    Freshmeat? SoucreForge? or Google? Oh you have? Crap.

    --
    Why not fork?
  2. What an interesting... by bob@dB.org · · Score: 2
    I'm trying to make my company's Unix boxes more mission critical in the area of job scheduling.

    ...use of the phrase "mission critical" :-)

    --
    Acts@core.mailboks.com Acrux@core.mailboks.com Adam@core.mailboks.com Adar@core.mailboks.com Ada@core.mailboks.com
  3. Mission critical? by CoderDevo · · Score: 3, Insightful

    There may be no open source products out there that match the functionality of the currently available commercial scheduling products.

    So here's what you do. Get a dollar figure from management that represents just how "mission critical" job scheduling is at your work. That number becomes your scheduling budget.

    If that number is too low to buy software, then I guess scheduling isn't all that critical at your business after all.

  4. Job scheduling by dhall · · Score: 3, Interesting

    Unfortunately I've found job scheduling commercial software to often be less reliable then cron/at jobs. There are a few nice features available to them that is not available in cron/at.

    1. the ability to list ancestors/descendant jobs, the first job(s) must complete before the next job is kicked off. Of course you must break up your job into smaller components.

    2. cross platform scheduling, the ability to schedule jobs on more then one platform. I'm sure there are plenty of ways to schedule for jobs to be kicked off on NT or what not, but what about the mainframe?

    3. central log maintence, if done correctly can keep the jobs in sync, which can be vitally important when you've got jobs that span your entire environment.

    I really wish there was a unix based solution that encompassed all of these. There's a probably a good reason as to why there isn't an open source/"free" alternative for this process. The people who need it are less likely to use a free product. You're dealing with people so entrenched in archaic business practices, that it is difficult sometimes to authorize the use perl in your environment without going through weeks of business jutification.

    It's easy to setup an existing framework to work correctly on Unix. Computer Associates has one. At times it seems to be the most bass-ackwards implementation I have seen, but then I have to remember it was originally designed for the mainframe.

  5. Re:What commercial products? by pozitron969 · · Score: 3, Informative

    We are currently finalizing a scheduling tool purchase for the company I work for. We have taken a look at the commercial job schedulers available and we are down to two that best fit our needs. #1 -Tidal Enterprise Scheduler and #2 - Job Scheduler. We are choosing them for a Windows 2000 platform but they all have Unix agents and other platforms available as well. Here the others we looked at:

    ActiveBatch32
    UC4
    Unicenter Autosys Job Management
    Control-M
    I wish this was a post back in August.

    Good Luck!

  6. A few options by muleboy · · Score: 5, Informative
    I have been looking into this lately, and here are the options I have found:

    • Condor - seems to be the best free as in beer scheduler, but it's not free as in speech.
    • OpenPBS - This one is sort of Free, but it is being developed by a company that doesn't seem so sure it likes it that way. The code goes BSD after a couple of years, and they've been doing that for several years, yet they don't make the old (now BSD) versions available, and they make you register just to download.
    • Sun GridEngine - Free, and it looks pretty sweet. I couldn't get it to work on Debian, but people on the mailing list said they were using it with Debian.
    • Globus Toolkit - Not so sure about this one.
    • Maui - Scheduler system for supercomputers
    • OSCAR - Sweet project from IBM to put together all the best Free tools for clustering! They are using the Maui scheduler in their system.

    What I would really like to see is a HOWTO that gives a good overview of scheduling and clustering. Everything I have found so far is not so good.

    1. Re:A few options by d^2b · · Score: 2, Informative

      Hmm, I thought about moderating the parent up, but surely the original poster will read _all_ of the answers :-)

      Anyway, I wanted to give a vote for OpenPBS. It works pretty well, and the code is moderately ok (i.e., I could sit down and add some new features).

      It is true that the license is not Open Source (whomever) compliant, it only restricts your rights to redistribute commercially. For many people this is not an onerous restriction. Sun probably makes you register as well; they seem to like registration forms :->

      PBS can use the MAUI scheduler as well. One thing that PBS does, that condor does not, is support parallel jobs.

      Anyway, I don't hate it, which is more than I can say for a lot of software.

  7. Level of sophistication required? by Zocalo · · Score: 3, Insightful
    It depends upon what level of sophistication you are after, of course, but I've never had any problems getting things like this working with that old UNIX standby: shell scripts.

    Basically, what you need to do is use a shell script to wrap around the commands you are scheduling and call the shell script from crons instead. The shell script then takes responsibility for any error handling, email/SMS/pager notifications, failover, or whatever, based on return codes and error messages etc. I've usually found that for most sites it's possible to write a generic template script and a small set of support scripts that do the notifications and what not that cover >75% of crons with no major customisation beyond the exit code "case" statement and the command to be executed.

    --
    UNIX? They're not even circumcised! Savages!
    1. Re:Level of sophistication required? by MadAhab · · Score: 2
      Yeah, but this can get to be pretty hairy if your needs are complex... I'm writing a perl script now, made to be extensible by writing your own jobs as modules - it should be pretty easy to have those call existing shell scripts, etc. It's going to have different criticality levels and have a conf file that defines dependencies, retry and state change intervals, suppress notifications on acknowledgement, automatic generation of a status page, persistent state across restarts, etc.

      Anyway, if it's code I feel doesn't suck, I'll make it available... I looked at the alternatives and didn't find precisely what I need. That is probably why there are so many options yet so many people who feel they aren't quite right - the needs can be really specific. I'm sure my solution will be great for some, but rotten for others.

      --
      Expanding a vast wasteland since 1996.
  8. You missed one: GNU Queue by crath · · Score: 3, Informative

    GNU Queue offers batch scheduling for clusters of computers; however, a cluster only needs to contain a single computer.

    One additional commercial tool we use where I work is Platform Computing's Load Sharing Facility. It works well, but it's expensive (read "over priced") and I suggest you try something else first.

  9. Protecting cron by linuxwrangler · · Score: 2

    I've found there is very little I can't do with cron and scripting - in fact I, like many others, have cron jobs that check up on other system processes.

    This all worked well until I had cron die on a SCO box. I eventually figured out what job screwed it up but that screwed up everything else that cron managed and left me feeling rather uneasy about relying on cron (I mean, if it can be killed by an errant script...).

    So...I've been considering launching cron from init with the respawn option to ensure that it stays running. Does anyone see a problem with this?

    --

    ~~~~~~~
    "You are not remembered for doing what is expected of you." - Atul Chitnis
  10. Re:What commercial products? by AtariDatacenter · · Score: 3, Informative

    FWIW, I'm in an environment that uses Autosys for intelligent scheduling. Seems to work pretty well. I really like the dependancies and all that you can set it. Of course, the only thing similar I used was cron, and this is light years better than cron when it comes to all the factors that were described in the article.