salbnet: Self-Adapting Load Balancing Network

Server Load Balancing (SLB) is an efficient way to provide scalable, flexible and fault tolerant services.

The server load balancing with salbnet is application independent and credit based. Backend server report credits to the load balancer. The credits represent the maximum number of requests which a back end server is able to handle.

The salbnet implementation includes different credit reporting algorithms and credit based schedulers. A scheduler considers a server only if credits are available. Thus the servers limit the work they will get (self-adapting).

The salbnet implementation is done in ANSI C and consists of several components: salbd a daemon for credit gathering and reporting, libnetmsg a library for sending messages over Ethernet and InfiniBand networks and libnethook a library for hook into socket syscalls.

salbnet is a proof of concept research project and all components are considered experimental and therefore may never be released to the public. Nevertheless there is a further tool originated from salbnet research: servload a service benchmark for HTTP and DNS performance evaluation.

servload: Service benchmark for HTTP and DNS

servload is a lightweight (∼ 2000 SLOC ANSI C) high performance service benchmark which supports the protocols HTTP and DNS. servload uses requests and responses to determine performance metrics. Furthermore servload loads (and may modify) a given log file and issues (replay) the resulting requests.

Source download for the latest stable release: servload-0.9.tar.gz  (old releases).

See INSTALL file for further hints on installation from source and manual page for usage details.

Publications

Research Publications related to salbnet and servload:

J. Jung, S. Kiertscher, S. Menski, and B. Schnor, Self-Adapting Load Balancing for DNS, Journal of Networks, 10 (4), pp. 222–231, April 2015.

J. Jung, S. Kiertscher, S. Menski, and B. Schnor, Self-Adapting Load Balancing for DNS, Proc. 17th Int'l Symp. on Performance Evaluation of Computer and Telecommunication Systems (SPECTS 14), 46, pp. 564–571, July 2014.

J. Jung, B. Schnor, and S. Menski, salbnet: A Self-Adapting Load Balancing Network, Proc. 12th IASTED Int'l Conf. Parallel and Distributed Computing and Networks (PDCN 14), pp. 249–257, February 2014.

J. Zinke and B. Schnor, The Impact of Weights on the Performance of Server Load Balancing Systems, Proc. 16th Int'l Symp. on Performance Evaluation of Computer and Telecommunication Systems (SPECTS 13), 45, pp. 541–548, July 2013.

J. Zinke, J. Habenschuß, and B. Schnor, servload: Generating Representative Workloads for Web Server Benchmarking, Proc. 15th Int'l Symp. on Performance Evaluation of Computer and Telecommunication Systems (SPECTS 12), 44, pp. 82–89, July 2012.

J. Zinke, B. Schnor, and S. Kiertscher, System call tracing overhead, Proc. Int'l Linux System Technology Conf. and OpenSolaris Developer Conf., UpTimes 2/2009, pp. 157–166, October 2009.

J. Lehmann, L. Schneidenbach, B. Schnor, and J. Zinke, Self-Adapting Credit Based Server Load Balancing, Proc. 7th IASTED Int'l Conf. Parallel and Distributed Computing and Networks (PDCN 08), pp. 55–62, February 2008.