user to develop new models that have the char-
acteristics of interest. The FTP and VoIP models
are only two examples of what can be described
in the GenSyn modelling framework, see e.g.
[Heeg00] for additional examples.
2.3 Implementation and Constraints
The design of GenSyn had the following overall
requirements [HeLu99]:
- Portable– run on Windows, Linux, Unix, and
produce the same results. - Distributed– run in parallel on several work-
stations – and be easy to distribute. - Scalable– run many active users in parallel on
a single workstation.
The first two requirements made Java an attrac-
tive choice as the implementation language. Java
provides simple, high level, and well-defined
interfaces and methods for communication (via
APIs) with the underlying protocol stack. This
makes it fairly easy to create HTTP and TCP
connections and to send streams of UDP packets.
The flip side of the coin is that Java limits the
scalability of GenSyn due to two constraints:
- Time scheduling and granularity.The sleep
function in Java is inaccurate for time granu-
larity in milliseconds, and returns different
results on various platforms. This will limit
the number of users that can be defined in the
model because many users means short time
between events in a composite model. The
experience so far, running between 300 and
3000 web users on a single processor
machine, indicates that the generator running
on one workstation should limit the number
of users to keep the expected time between
stochastic events of at least 10 ms.- Threads and memory.The number of parallel
threads that can be run on one single work-
station is limited by the available memory.
Hence, the GenSyn should be executed on a
dedicated workstation. This was expected to
be the critical restriction because it introduces
an upper limit to the number of simultaneous
communication streams, and hence the num-
ber of users in the model.
- Threads and memory.The number of parallel
The following section presents a few results of
the performance of a single GenSyn process,
using a scenario generating both TCP and UDP
traffic by running a single instance on a dedi-
cated machine. Knowledge of these constraints
are important for instance while specifying a test
scenario.
2.3.1 The GenSyn Performance
Constraints
2.3.1.1 TCP Traffic – the Throughput
Constraints
The web interface module described in [Heeg00]
downloads and parses through web pages. This
puts a rather heavy burden on the processor and
will limit the scaling of a model that uses a web
module. The maximum number of simultaneous
sessions is limited by the ability to handle paral-
lel threads in the Java runtime environment. The
maximum number of sessions constrains the
number of users in a model and this will again
limit the throughput. To reduce this constraint
the FTP interface module was developed where
the web pages and files are simply downloaded
into memory and discarded without further
inspection. Hence, the downloading of pages
and files will be much less computer demanding
because the GenSyn program now only needs to
send a request for a page/file.
The throughput has been studied by use of the
FTP model as described in Section 2.2.2.1 with
Figure 13 The constraints of a
GenSyn process downloading
files to a single machine
(average file size = 154 kbytes,
average download time =
86 ms, interface rate =
100 Mbit/s)
100
80
60
40
20
0
0 2000 4000 6000 8000 10000 12000 14000 16000
160
140
120
100
80
60
40
20
0
Users
throughput [Mbit/s] download time [ms]
linear extrapolation
download time
observed throughput