.\" -------------------------------------------------------------------------- .\" .\" //===// //===== //===// // // //===// .\" // // // // // // // // // .\" //===// //===== //===// // // //===<< .\" // \\ // // // // // // .\" // \\ =====// // //===== // //===// Version III .\" .\" ------------- An Efficient RSerPool Prototype Implementation ------------- .\" .\" Copyright (C) 2002-2023 by Thomas Dreibholz .\" .\" This program is free software: you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation, either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . .\" .\" Contact: thomas.dreibholz@gmail.com .\" .\" ###### Setup ############################################################ .Dd June 12, 2015 .Dt RspServer 1 .Os RSerPool Server .\" ###### Name ############################################################# .Sh NAME .Nm rspserver .Nd RSerPool Server (PE) for multiple example services .\" ###### Synopsis ######################################################### .Sh SYNOPSIS .Nm rspserver .Op Fl local=address:port,address,... .Op Fl asapannounce=address:port .Op Fl identifier=PE_identifier .Op Fl policy=policy_specification .Op Fl poolhandle=pool_handle .Op Fl quiet .Op Fl registrar=address:port .Op Fl rereginterval=milliseconds .Op Fl runtime=milliseconds .Op Fl uptime=seconds .Op Fl downtime=seconds .Op Fl logcolor=on|off .Op Fl logappend=filename .Op Fl logfile=filename .Op Fl loglevel=0-9 .Op Fl cspserver=address:port .Op Fl cspinterval=milliseconds .Nm rspserver .Op Fl calcapp .Op Fl capcapacity=calculations_per_second .Op Fl capcleanshutdownprobability=probability .Op Fl capcookiemaxcalculations=calculations .Op Fl capcookiemaxtime=seconds .Op Fl capkeepalivetransmissioninterval=milliseconds .Op Fl capkeepalivetimeoutinterval=milliseconds .Op Fl capmaxjobs=max_jobs .Op Fl capobject=name .Op Fl capscalar=scalae_file .Op Fl capvector=vector_file .Nm rspserver .Op Fl chargen .Op Fl chargenmaxthreads=threads .Nm rspserver .Op Fl daytime .Nm rspserver .Op Fl discard .Nm rspserver .Op Fl echo .Nm rspserver .Op Fl fractal .Op Fl fgpcookiemaxpackets=messages .Op Fl fgpcookiemaxtime=milliseconds .Op Fl fgpfailureafter=messages .Op Fl fgpmaxthreads=threads .Op Fl fgptestmode .Op Fl fgptransmittimeout=milliseconds .Nm rspserver .Op Fl pingpong .Op Fl pppfailureafter=messages .Op Fl pppmaxthreads=threads .Nm rspserver .Op Fl scripting .Op Fl sskeyring=keyring .Op Fl sstrustdb=trust_db .Op Fl sscachedirectory=directory .Op Fl sscachemaxentries=entries .Op Fl sscachemaxsize=kibibytes .Op Fl sskeepaliveinterval=milliseconds .Op Fl sskeepalivetimeout=milliseconds .Op Fl sskeeptempdirs .Op Fl ssmaxthreads=threads .Op Fl sstransmittimeout=milliseconds .\" ###### Description ###################################################### .Sh DESCRIPTION .Nm rspserver is an example Reliable Server Pooling (RSerPool) pool element (PE) that provides multiple services. Upon startup, one service has to be selected by the command-line parameters. To start multiple services, run multiple instances. .Nm rspserver provides the following services: .Bl -tag -width indent .It CalcApp Calculation application model for performance tests. See https://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006_final.pdf for more information. .It CharGen Sending as much character data as possible. .It Daytime Sending back current time of day. .It Discard Discarding incoming data. .It Echo Echoing back incoming data. .It Fractal Fractal generator with cookie-based failover. .It PingPong Simple request-response example using cookies for failover. .It Scripting Remote execution of scripts with upload/download of input/output data. Could for example be used for distributing simulation runs. Take care of security when using this service! .El .Pp .\" ###### Arguments ######################################################## .Sh ARGUMENTS The following options are available: .Bl -tag -width indent .\" ====== Common parameters ================================================ .It Common Pool Element Parameters: .Bl -tag -width indent .It Fl local=address:port,address,... Sets the local endpoint address(es). .It Fl asapannounce=address:port|auto|off Sets the multicast address and port the ASAP instance listens for ASAP Server Announces on. .It Fl identifier=PE_identifier Sets a fixed PE identifier. Handle with care! .It Fl policy=policy_specification Sets the pool policy and its parameters (default is Round Robin). Supported policy specifications: .Bl -tag -width indent .It RoundRobin (default policy) .It WeightedRoundRobin:weight .It Random .It WeightedRandom:weight .It LeastUsed .It LeastUsedDegradation:increment .It PriorityLeastUsed:increment .It LeastUsedDPF:dpf_value .It Priority:priority .It ... .El .It Fl poolhandle=pool_handle Sets the PH to a non-default value; otherwise, the default setting is the service-specific default. .It Fl quiet Do not print startup and shutdown messages. .It Fl rereginterval=milliseconds Sets the PE's re-registration interval. .It Fl runtime=seconds After the configured number of seconds, the service is shut down. Floating-point values (e.g. 30.125) are possible. .It Fl uptime=seconds After negative exponential randomized uptime, the PE service goes down for a configured downtime. After that, it comes up again. This option can be used for testing the failure handling procedures. .It Fl downtime=seconds After negative exponential randomized downtime, the PE service comes up again. This option can be used for testing the failure handling procedures. .El .\" ====== Logging ========================================================== .It Logging Parameters: .Bl -tag -width indent .It Fl logappend=filename Write logging output to a file (default is stdout); output will be appended to given file. .It Fl logcolor=on|off Turns ANSI colorization of the logging output on or off. .It Fl logfile=filename Write logging output to a file (default is stdout); given file will be overwritten. .It Fl loglevel=0-9 Sets the logging verbosity from 0 (none) to 9 (very verbose). It is recommended to use at least a value of 2 to see possibly important error messages and warnings. .El .\" ====== ASAP Protocol ==================================================== .It ASAP Protocol Parameters: .Bl -tag -width indent .It Fl registrar=address:port Adds a static PR entry into the Registrar Table. It is possible to add multiple entries. .It Fl registrarannouncetimeout=milliseconds Sets the timeout for ASAP announces via multicast. .It Fl registrarconnecttimeout=milliseconds Sets the timeout for ASAP connection establishment. .It Fl registrarconnectmaxtrials=trials Sets the maximum number of ASAP connection establishment trials. .It Fl registrarrequesttimeout=milliseconds Sets the timeout for ASAP requests. .It Fl registrarresponsetimeout=milliseconds Sets the timeout for waiting to receive ASAP responses. .It Fl registrarrequestmaxtrials=trials Sets the maximum number of ASAP request trials. .El .\" ====== Component Status Protocol ======================================== .It Component Status Protocol (CSP) Parameters: .Bl -tag -width indent .It Fl cspinterval=milliseconds Sets the interval for the CSP status updates in milliseconds. By default, the content of the environment variable CSP_INTERVAL is used. If not defined, no CSP status reports will be sent. .It Fl cspserver=address:port Sets the address of a CSP monitor server. By default, the content of the environment variable CSP_SERVER is used. If not defined, no CSP status reports will be sent. .El .\" ====== Services ========================================================= .It Service Parameters: .Bl -tag -width indent .\" ====== CalcApp ========================================================== .It Fl calcapp Starts the CalcApp service. .Bl -tag -width indent .It Fl capcapacity=calculations_per_second Sets the service capacity in calculations per second. .It Fl capcleanshutdownprobability=probability Sets the probability for sending state cookies to all sessions before shutting down. .It Fl capcookiemaxcalculations=calculations Sets the cookie interval in calculations. .It Fl capcookiemaxtime=seconds Sets the cookie interval in seconds. .It Fl capkeepalivetransmissioninterval=milliseconds Sets the keep-alive transmission interval in milliseconds. .It Fl capkeepalivetimeoutinterval=milliseconds Sets the keep-alive timeout in milliseconds. .It Fl capmaxjobs=max_jobs Sets the an upper limit for the number of simultaneous CalcApp requests. .It Fl capobject=name Sets the object name for scalar hierarchy. .It Fl capscalar=scalar_file Sets the name of vector scalar file. .It Fl capvector=vector_file Sets the name of vector output file. .El .\" ====== CharGen ========================================================== .It Fl chargen Starts the CharGen service. .Bl -tag -width indent .It Fl chargenmaxthreads=threads Sets an upper limit for the number of simultaneous CharGen sessions. .El .\" ====== Daytime ========================================================== .It Fl daytime Starts the Daytime service. .\" ====== Discard ========================================================== .It Fl discard Starts the Discard service. .\" ====== Echo ============================================================= .It Fl echo Starts the Echo service. .\" ====== Fractal ========================================================== .It Fl fractal Starts the Fractal Generator service. .Bl -tag -width indent .It Fl fgpcookiemaxpackets=messages Send cookie after given number of Data messages .It Fl fgpcookiemaxtime=milliseconds Send cookie after given number of milliseconds. .It Fl fgpfailureafter=messages After the set number of data packets, the server will terminate the connection in order to test failovers. .It Fl fgpmaxthreads=threads Sets an upper limit for the number of simultaneous Fractal Generator sessions. .It Fl fgptestmode Generate simple test pattern instead of calculating a fractal graphics (useful to conserve CPU power when debugging). .It Fl fgptransmittimeout=milliseconds Sets transmit timeout in milliseconds. .El .\" ====== PingPong ========================================================= .It Fl pingpong Starts the PingPong service. .Bl -tag -width indent .It Fl pppfailureafter=messages After the set number of messages, the server will terminate the connection in order to test failovers. .It Fl pppmaxthreads=threads Sets an upper limit for the number of simultaneous PingPong sessions. .El .\" ====== Scripting ======================================================== .It Fl scripting Starts the Scripting service. .Bl -tag -width indent .It Fl sskeyring=keyring The location of a GnuPG keyring to check the work packages and environments against. If a keyring is specified, only files that pass the validation are accepted. .It Fl sscachedirectory=directory Sets the environment cache directory. .It Fl sscachemaxentries=entries Sets the maximum number of environment cache entries. .It Fl sscachemaxsize=kibibytes Sets the maximum size of the environment cache in kibibytes. .It Fl sskeepaliveinterval=milliseconds Sets the keep-alive interval in milliseconds. .It Fl sskeepalivetimeout=milliseconds Sets the keep-alive timeout in milliseconds. .It Fl sskeeptempdirs Turns on keeping all temporary files for debugging. Handle with care! .It Fl ssmaxthreads=threads Sets an upper limit for the number of simultaneous sessions. .It Fl sstransmittimeout=milliseconds Sets the transmission timeout in milliseconds. .El .El .El .\" ###### Environment ###################################################### .Sh ENVIRONMENT .Nm rspserver uses the environment variables CSP_SERVER and CSP_INTERVAL to define a CSP server to send reports to in the specified interval. .\" ###### Diagnostics ###################################################### .Sh DIAGNOSTICS If loglevel>0, log messages will be printed to stdout or into a specified log file. .\" ###### See also ######################################################### .Sh SEE ALSO For a detailed introduction to RSerPool, see: .br https://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-16326/Dre2006_final.pdf .Pp Thomas Dreibholz's RSerPool Page: .br https://www.nntb.no/~dreibh/rserpool/