home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume25 / QBATCH / part03 / DESCRIPTION next >
Text File  |  1991-11-04  |  6KB  |  118 lines

  1.  
  2.      The QBATCH system and its related programs were
  3.      written by Alan D. Saunders and are
  4.      Copyright (c) Vita Services Ltd. 1990 and
  5.      Copyright (c) Vita Fibres Ltd. 1991
  6.      
  7.      PLEASE read the NOTICE file for details.
  8.  
  9. QBATCH is a versatile queued batch processing system for *NIX.
  10.  
  11. Each queue consists of a file containing information about the queue
  12. itself, and about all jobs currently present in the queue.  When the
  13. program 'qp' is run for a given queue, it will fork a child process for
  14. each job in the queue in turn, and wait for it to complete.  If there
  15. are no jobs present in the queue, qp will wait for a signal from one of
  16. the support programs, which will 'tell' it that another job has joined
  17. the queue, or that it should terminate.
  18.  
  19. Features:
  20.  
  21. There can be as many queues as the system can support. Queues are
  22. named, and run asynchronously.  The processing of jobs running in one
  23. queue are totally independent of those in any other (subject of course
  24. to the independence of potentially shared resources such as data files
  25. and devices).
  26.  
  27. Queues can be started and stopped independently.  If a job is running
  28. in a queue which receives a stop signal from the 'qs' program (NOT
  29. SIGSTOP) qp will allow the job to run to completion before terminating
  30. unless the kill option is specified.
  31.  
  32. The priority (nice value) of all jobs running in a queue is defined
  33. when the queue is created, so prioritised queues can be configured.
  34.  
  35. Jobs running in a queue consist of shell scripts, created (or copied)
  36. by the js program.  The default shell is the bourne shell, but this can
  37. be overridden at submit time with the -s option to js.   The jobs run
  38. with the uid and gid of the submittor, and run in the environment
  39. ruling when the job was submitted.  All environment variables except
  40. those excluded deliberately are passed to the job, and the job will
  41. start in the submittors current working directory.  Fixed context
  42. queues may be configured which overrule the above, they may be
  43. configured to run under a specified default shell, with a specified
  44. uid and gid (NOT root), and with a pre-defined environment and working
  45. directory.  Access to fixed context queues may be restricted by user-
  46. name and group.
  47.  
  48. Stdout and stderr of running jobs is redirected to a 'monitor' This
  49. will normally be the queue monitor (specified or defaulted when the
  50. queue was created), but may be specified for individual jobs.  The
  51. pathspec of both the job file, and the monitor, may be accessed with
  52. the 'qf' program viz:  "tail -f `qf -m work`"  where 'work' is the name
  53. of a queue.
  54.  
  55. The status and contents of queues can be listed at any time using the
  56. 'ql' program.  Information can include the uid and gid under which jobs
  57. will run (are running), user name and tty of submittor,  date and time
  58. of submission, date and time current job started, and a meaningful job
  59. name or description.
  60.  
  61. If rc.QBATCH is configured in the system init script, all queues which
  62. were running when the system went down will be restarted. Any jobs
  63. present in the queues will also be restarted.
  64.  
  65. Facilities:
  66.  
  67. inform user by mail, or tty message when job is complete.
  68. cancel jobs in queues, or kill running jobs.
  69. change the running order of jobs in queues.
  70. suspend and resume processing of jobs.
  71. start and stop the queue process engine at any time (even under cron or from
  72.       another queue)
  73. disable submissions to a queue, and re-enable them.
  74. stop a queue, and wait until the current job has finished (useful for ensuring
  75.       that the system is idle before a backup)
  76. list the status and contents of a queue.
  77. repeat (or kill and repeat) the currently running job in a queue.
  78. examine or edit the jcl of jobs in a queue, and examine the monitors.
  79. monitor (and perhaps account) the times taken by jobs in the queue.
  80.  
  81. Prevent deadlocks between batch programs accessing the same devices or data
  82. files by ensuring they are submitted to the same queue, then they can't run in
  83. parallel.
  84.  
  85. Prevent cpu hogging jobs from swamping the system by submitting them to
  86. low-priority queues.
  87.  
  88. Have a separate queue for humungous jobs that is started and stopped by cron
  89. out of working hours.
  90.  
  91. Ensure all overnight work is running in queues, then a backup job can stop the
  92. queues, wait for current jobs to finish, and back up before restarting the
  93. queues.
  94.  
  95. Protect sensitive applications and data with file and directory permissions,
  96. then permit named users or groups to submit jobs to a fixed context queue.
  97.  
  98. Queues can only be created by root, so the system administrator can tune the
  99. configuration to provide optimum throughput.  It is frequently the case,
  100. particularly if a system is swapping heavily, or is short of swap space, that
  101. two jobs running one after the other in a queue, will process faster overall
  102. than if they were run concurrently.
  103.  
  104. Of course, porting and installing QBATCH isn't the end. Queue discipline has to
  105. be imposed in order for it to be of any benefit.  Scripts and commands
  106. triggering batch jobs will have to be changed to use QBATCH, and jobs normally
  107. run interactively which impose heavy system loads, will have to be
  108. reconfigured. (consider for example renaming 'make' as 'MAKE' and writing a
  109. 'make' script which submits 'MAKE' to a queue).  Of course there will always be
  110. the awkward user who decides to submit a large job into a high priority queue.
  111. Analysing the queue monitors should show this up, they contain a certain amount
  112. of profile timing for jobs run in the queue, and the uid and gid of the submittor.
  113.  
  114. This should give you a taste of what QBATCH has to offer.
  115.  
  116. Regards .. Alan
  117.  
  118.