Skip to content

tomcucinotta/distwalk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DistWalk - Distributed processing emulation tool for Linux
	   Copyright 2016-2021 by Tommaso Cucinotta
	   firstname dot lastname at santannapisa dot it
======================================================================


DESCRIPTION
----------------------------------------------------------------------
DistWalk is a simple command-line tool useful to emulate distributed
processing scenarios, where a client submits requests to be processed
by one or more server nodes, in a distributed environment. The client
can be configured to send requests according to a pre-defined pattern
(e.g., periodically or exponentially distributed), and the server may
be configured to perform processing for a time that is configurable
according to a pre-defined pattern (e.g., constant or exponentially
distributed processing time). The client provides, at the end of the
experiment, all the end-to-end processing times for all submitted
requests.

At the moment, the client establishes a TCP connection to the server,
which is capable of handling multiple client connections via epoll(7).


COMPILING
----------------------------------------------------------------------
This program has been developed and tested on a Linux Ubuntu system,
versions 16.xx and 17.xx. Therefore, please, use Linux.

In order to compile the client and the server, just type, from the
root folder:

  make

two executables are created:
- src/client: the client program, try typing ./client -h
- src/node: the server program, try typing ./server -h


EXAMPLE OF USE
----------------------------------------------------------------------
The classic and simplest scenario is the one of a client-server
scenario with client submitting periodically packets of a given
size, and expecting back responses of a different fixed size.

This example scenario is achieved launching on the server the simple
command:

  [myuser@myserver distwalk/src]$ ./node

then launching on the client the following command, with which we are
submitting 10 packets at a rate of 1000 pkt/s

  [myuser@myclient distwalk/src]$ ./client -c 10 -r 1000 -C 1000 -s -ps 512 myserver
Configuration:
  bind=0.0.0.0:0
  hostname=theoden.retis:7891
  num_pkts=10
  rate=1000, exp_arrivals=0
  waitspin=0
  ramp_num_steps=10, ramp_delta_rate=100, ramp_step_secs=0
  comptime_us=1000, exp_comptimes=0
  pkt_size=512, exp_pkt_size=0
  resp_size=128, exp_resp_size=0
  min packet size due to header: 12
  max packet size: 16384
  no_delay: 1
t: 1 us, elapsed: 1476 us
t: 1053 us, elapsed: 1292 us
t: 2225 us, elapsed: 1296 us
t: 3054 us, elapsed: 1626 us
t: 4082 us, elapsed: 1567 us
t: 5116 us, elapsed: 1542 us
t: 6220 us, elapsed: 1461 us
t: 7252 us, elapsed: 1415 us
t: 8225 us, elapsed: 1536 us
t: 9218 us, elapsed: 1375 us

About

Distributed processing emulation tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7