Advanced Configuration
Optional environment variables
WRF4G uses the following environmental variables:
- WRF4G_DIR: Directory for local configuration. If it is undefined, $WRF4G_DIR will be ~/.wrf4g.
- EDITOR: Select the editor to configure configuration files. vi editor is used by default.
Database configuration access
Edit by typing wrf4g conf database.
URL = sqlite:///path/to/<dbname>
Default configuration :
[DEFAULT]
URL = sqlite:///$HOME/.wrf4g/etc/wrf4g.db
Logging configuration
Edit by typing wrf4g conf logger.
Configuration file for WRF4G logging. For more information about logging configuration directives, you should check out ?python logging configuration. Additionally, %(WRF4G_DIR)s variable indicates where WRF4G configuration resides.
[loggers]
keys=root,drm4gIm,drm4gEm,drm4gTm,drm4gConfigure,drm4gManager,drm4gCommunicator
[handlers]
keys=handDrm4gIm,handDrm4gEm,handDrm4gTm,handConfigure,handManager,handCommunicator
[formatters]
keys=form01
[logger_root]
handlers=
[logger_drm4gIm]
handlers=handDrm4gIm
level=INFO
qualname=drm4g.core.im_mad
[logger_drm4gEm]
handlers=handDrm4gEm
level=INFO
qualname=drm4g.core.em_mad
[logger_drm4gTm]
handlers=handDrm4gTm
level=INFO
qualname=drm4g.core.tm_mad
[logger_drm4gConfigure]
handlers=handConfigure
level=INFO
qualname=drm4g.core.configure
[logger_drm4gManager]
handlers=handManager
level=INFO
qualname=drm4g.managers
[logger_drm4gCommunicator]
handlers=handCommunicator
level=INFO
qualname=drm4g.communicators
[handler_handDrm4gIm]
class=handlers.RotatingFileHandler
level=INFO
formatter=form01
args=('%(WRF4G_DIR)s/var/log/drm4g_im.log','w',5000000,4)
[handler_handDrm4gEm]
class=handlers.RotatingFileHandler
level=INFO
formatter=form01
args=('%(WRF4G_DIR)s/var/log/drm4g_em.log','w',5000000,4)
[handler_handDrm4gTm]
class=handlers.RotatingFileHandler
level=INFO
formatter=form01
args=('%(WRF4G_DIR)s/var/log/drm4g_tm.log','w',5000000,4)
[handler_handConfigure]
class=handlers.RotatingFileHandler
level=INFO
formatter=form01
args=('%(WRF4G_DIR)s/var/log/drm4g_configure.log','w',5000000,4)
[handler_handManager]
class=handlers.RotatingFileHandler
level=INFO
formatter=form01
args=('%(WRF4G_DIR)s/var/log/drm4g_manager.log','w',5000000,4)
[handler_handCommunicator]
class=handlers.RotatingFileHandler
level=INFO
formatter=form01
args=('%(WRF4G_DIR)s/var/log/drm4g_communicator.log','w',5000000,4)
[formatter_form01]
format=%(asctime)s %(levelname)-9s %(name)-8s %(message)s
Daemon configuration
Edit by typing wrf4g conf daemon.
General configuration:
- GWD_PORT: Daemon port.( Default value is 6725 )
- MAX_NUMBER_OF_CLIENTS: Number of connections. (Default value is 50 )
Size of pools:
- NUMBER_OF_ARRAYS: The number of array-jobs that will be handled by the scheduler. (Default value is 200000)
- NUMBER_OF_JOBS: The number of jobs that will be handled by the scheduler. (Default value is 200000)
- NUMBER_OF_HOSTS: The number of hosts that will be handled by the scheduler. (Default value is 1000)
- NUMBER_OF_USERS: The number of different users. (Default value is 30 )
Intervals:
- SCHEDULING_INTERVAL: Period between two scheduling actions. (Default is 16 seconds)
- DISCOVERY_INTERVAL: How often the information manager searches for new hosts. (Default is 15 seconds)
- MONITORING_INTERVAL: How often the information manager updates the information of each resource. (Default is 20 seconds)
- POLL_INTERVAL: How often the underlying grid middleware is query about job state. (Default is 1000 seconds)
Scheduler configuration
Edit by typing wrf4g conf sched.
General configuration:
- DISPATCH_CHUNK: The maximum number of jobs that will be dispatched each scheduling action. Default value is 100, 0 dispatch as many jobs as possible.
- MAX_RUNNING_USER: The maximum number of simultaneous running jobs per user. Default value is 0, 0 to dispatch as many jobs as possible.
Job priority configuration. Pending jobs are prioritize according four policies:
- Fixed Priority (FP) Policy. Assign a fixed priority to each job (FP range [0,19]):
- FP_WEIGHT: Weight for the policy. Default is 1 (real numbers allowed).
- FP_USER[<username>]: Priority for jobs owned by <username>. Use the special username DEFAULT to set default priorities.
- FP_GROUP[<groupname>]: Priority for jobs owned by users in group <groupname>.
- Share (SH) Policy. Allows to establish a dispatch ratio among users. It tracks the jobs submitted by each user so it targets the defined ratio:
- SH_WEIGHT: Weight for the policy. Default is 1 (real numbers allowed).
- SH_USER[<username>]: Share for jobs owned by <username>. Use the special username DEFAULT to set default shares.
- SH_WINDOW_DEPTH: Number of intervals (windows) to "remember" each user dispatching history. The submissions of each window are exponentially "forgotten". Default is 5, and the maximum value is 10.
- SH_WINDOW_SIZE: The size of each interval in days. Default is 1, real numbers allowed.
- Waiting-time (WT) Policy. The priority of a job is increased linearly with the waiting time to prevent job starvation:
- WT_WEIGHT: Weight for the policy. Default is 1 (real numbers allowed)
- Deadline (DL) Policy. The priority of a job is increased exponentially as its deadline approaches:
- DL_WEIGHT: Weight for the policy. Default is 1 (real numbers allowed)
- DL_HALF: Number of remaining days when the job should get half of the maximum priority. Default is 1 (real numbers allowed).