Introduction to OSAD on SUSE Manager
Osad is a client-side service written in Python. This service responds to pings and runs rhn_check when commanded to by osa-dispatcher.
osa-dispatcher is a server-side service written in Python. This service checks when an osad instance on a SUSE Manager Server client requires to be pinged or if it must run an rhn_check and then dispatches a message commanding them to do so.
Jabberd2 is a deamon that implements the XMPP protocol. osad and osa-dispatcher both connect to this daemon. Jabberd2 also handles authentication between server and client.
Osa-dispatcher, Osad, and Jabberd2 in Practice
Osa-dispatcher on SUSE Manager runs a query every 5 seconds that checks to see if there are any clients which are overdue for a ping. If a client requiring a ping is found, osa-dispatcher dispatches a message through jabberd2 to the osad instances running on the clients it needs a response from. The osad instances then respond to the message sent through the jabberd server. Osa-dispatcher receives the response, and marks the client as 'online'. If osa-dispatcher does not receive a response from an osad instance on the client within the a timeout range, it is marked 'offline'. The osa-dispatcher daemon also performs a select on the database to see if there are any clients which have actions that need to be performed and have been initiated from the command line or WebUI. If an action has been scheduled from either the WebUI or the command line, osa-dispatcher dispatches a message through jabberd to the osad instance running on the client to execute the rhn_check command. rhn_check then takes over performing the scheduled action.
Adjusting the notify_threshold Parameter
The osa-dispatcher.notify_threshold option is used to adjust the maximum number of osad clients that are simultaneously served actions by the SUSE Manager Server.
The notifiy_threshold parameter is required as actions performed on clients configured with the OSAD contact method are performed instantly. Issues will occur when an action is scheduled on a high number of clients at the same time, as a result the SUSE Manager Server can then be overloaded by the flood of clients connecting. Setting this parameter to 100 for example will allow osa-dispatcher to serve only 100 clients at once and queue up the remaining actions for the rest of the clients requiring this action at a later time.
The current SUSE notify_threshold parameter is set to unlimited by default in SUSE Manager 2.1, but it is recommended to change this value to 100. For SUSE Manager 3 this parameter will be set to a limited value by default.
Changing the Default Value
The default settings are located in:
Example rhn_osa-dispatcher.conf file:
# Default log file log_file = /var/log/rhn/osa-dispatcher.log # SSL cert osa_ssl_cert = /usr/share/rhn/RHNS-OSA-CERT # Jabber server to connect to jabber_server = jabberserver.example.org:5234 poll_interval = 5 # number of systems that can run actions until # osad-dispatcher stops notifying more clients. # current default is unlimited notify_threshold =
To override the default value of an unlimited threshold add the
osa-dispatcher.notify_threshold = 100 parameter to the following file:
# OSA configuration # server.jabber_server = example-server.suse.com osa-dispatcher.jabber_server = example-server.suse.com
It should be noted that adjusting the notify_threshold parameter to a value higher than that of Apache MaxClients can result in timeouts occurring on clients connecting to SUSE Manager as the Apache MaxClients parameter limits the number of simultaneous connections. For more information see also: Optimizing Apache and Tomcat