performance/Makefile
include ../Makefile.def
ALL = signaloverhead timeroverhead pipes socketlocal \
fifoserver fifoclient shared \
tcpsclientoverhead tcpsserverconcurrentoverhead semaphore \
tcpsserverconcurrent tcpsclientthroughput \
udpsserver udpsclient message \
systemcalloverhead memory
all: $(ALL)
# generate performance data
dataget:
# measure memory throughput
memory >memory.log
#
# measure system call overhead
systemcalloverhead >systemcalloverhead.log
#
# measure signal time
signaloverhead >signaloverhead.log
#
# measure timer overhead
timeroverhead >timeroverhead.log
#
# measure pipe throughput
pipes
#
# measure throughput of local sockets
socketlocal
#
# measures fifo throughput
fifoserver &
sleep 3
fifoclient
#
# System V IPC
#
# measure how many sem ops per sec
semaphore >semaphore.log
#
# measure how many shared memory region ops per sec
shared >shared.log
#
# measure throughput and ops/s of messages
message >message.log
#
# local TCP / UDP
#
# measure (local) UDP throughput and ops/s
udpsserver 6543 &
sleep 3
udpsclient 127.0.0.1 6543
#
# measure (local) TCP throughput
tcpsserverconcurrent 6542 &
sleep 3
tcpsclientthroughput 127.0.0.1 6542
#
# measure overhead of establishing a (local) TCP connection
tcpsserverconcurrentoverhead 6541 &
sleep 3
tcpsclientoverhead 127.0.0.1 6541
#
#
## dist TCP / UDP
##
## measure (dist) UDP throughput and ops/s
#udpsserver 6543 &
#udpsclient 127.0.0.1 6543
##
## measure (dist) TCP throughput
#tcpsserverconcurrent 6542 &
#tcpsclientthroughput 127.0.0.1 6542
##
## measure overhead of establishing a (dist) TCP connection
#tcpsserverconcurrentoverhead 6541 &
#tcpsclientoverhead 127.0.0.1 6541
# rename log files
datamove:
echo $(HOSTTYPE) $(OSTYPE)
# move data files
mv systemcalloverhead.log systemcalloverhead.log.$(OSTYPE)
mv fifoclient.write.data fifoclient.write.data.$(OSTYPE)
mv fifoclient.write.log fifoclient.write.log.$(OSTYPE)
mv fifoserver.read.data fifoserver.read.data.$(OSTYPE)
mv fifoserver.read.log fifoserver.read.log.$(OSTYPE)
mv memory.log memory.log.$(OSTYPE)
mv message.log message.log.$(OSTYPE)
mv message.write.data message.write.data.$(OSTYPE)
mv pipes.read.data pipes.read.data.$(OSTYPE)
mv pipes.read.log pipes.read.log.$(OSTYPE)
mv pipes.read2.data pipes.read2.data.$(OSTYPE)
mv pipes.read2.log pipes.read2.log.$(OSTYPE)
mv pipes.write.data pipes.write.data.$(OSTYPE)
mv pipes.write.log pipes.write.log.$(OSTYPE)
mv pipes.write2.data pipes.write2.data.$(OSTYPE)
mv pipes.write2.log pipes.write2.log.$(OSTYPE)
mv semaphore.log semaphore.log.$(OSTYPE)
mv shared.log shared.log.$(OSTYPE)
mv shared.mes.data shared.mes.data.$(OSTYPE)
mv signaloverhead.log signaloverhead.log.$(OSTYPE)
mv socketlocal.read.data socketlocal.read.data.$(OSTYPE)
mv socketlocal.read.log socketlocal.read.log.$(OSTYPE)
mv socketlocal.read2.data socketlocal.read2.data.$(OSTYPE)
mv socketlocal.read2.log socketlocal.read2.log.$(OSTYPE)
mv socketlocal.write.data socketlocal.write.data.$(OSTYPE)
mv socketlocal.write.log socketlocal.write.log.$(OSTYPE)
mv socketlocal.write2.data socketlocal.write2.data.$(OSTYPE)
mv socketlocal.write2.log socketlocal.write2.log.$(OSTYPE)
mv tcpsclientoverhead.mes.data tcpsclientoverhead.mes.data.$(OSTYPE)
mv tcpsclientoverhead.mes.log tcpsclientoverhead.mes.log.$(OSTYPE)
mv tcpsclientthroughput.write.data tcpsclientthroughput.write.data.$(OSTYPE)
mv tcpsclientthroughput.write.log tcpsclientthroughput.write.log.$(OSTYPE)
mv tcpsserverconcurrent.read.data tcpsserverconcurrent.read.data.$(OSTYPE)
mv tcpsserverconcurrent.read.log tcpsserverconcurrent.read.log.$(OSTYPE)
mv timeroverhead.log timeroverhead.log.$(OSTYPE)
mv udpsclient.mes.data udpsclient.mes.data.$(OSTYPE)
mv udpsclient.mes.log udpsclient.mes.log.$(OSTYPE)
mv udpsclient.mes2.data udpsclient.mes2.data.$(OSTYPE)
mv udpsclient.mes2.log udpsclient.mes2.log.$(OSTYPE)
datamovedist:
mv tcpsclientoverhead.mes.data tcpsclientoverhead.mes.data.dist.hpux
mv tcpsclientoverhead.mes.log tcpsclientoverhead.mes.log.dist.hpux
mv tcpsclientthroughput.write.data tcpsclientthroughput.write.data.dist.hpux
mv tcpsclientthroughput.write.log tcpsclientthroughput.write.log.dist.hpux
mv tcpsserverconcurrent.read.data tcpsserverconcurrent.read.data.dist.hpux
mv tcpsserverconcurrent.read.log tcpsserverconcurrent.read.log.dist.hpux
# generate postscript performance pictures
# changing to another system like this:
## find . -name '*.gnuplot' -exec ../../bin/replace "Linux" "hpux" \{\} \;
dataeps:
gnuplot fifo.gnuplot.Linux
gnuplot fifo.gnuplot.SunOS5
gnuplot fifo.gnuplot.hpux
gnuplot message.gnuplot.Linux
gnuplot message.gnuplot.SunOS5
gnuplot message.gnuplot.hpux
gnuplot pipes.gnuplot.Linux
gnuplot pipes.gnuplot.SunOS5
gnuplot pipes.gnuplot.hpux
gnuplot shared.gnuplot.Linux
gnuplot shared.gnuplot.SunOS5
gnuplot shared.gnuplot.hpux
gnuplot socketlocal.gnuplot.Linux
gnuplot socketlocal.gnuplot.SunOS5
gnuplot socketlocal.gnuplot.hpux
gnuplot tcpsthroughput.gnuplot.Linux
gnuplot tcpsthroughput.gnuplot.SunOS5
gnuplot tcpsthroughput.gnuplot.aidanpike
gnuplot tcpsthroughput.gnuplot.hphp
gnuplot tcpsthroughput.gnuplot.hpux
gnuplot udps.gnuplot.Linux
gnuplot udps.gnuplot.SunOS5
gnuplot udps.gnuplot.aidanpike
gnuplot udps.gnuplot.hphp
gnuplot udps.gnuplot.hpux
gnuplot fifo.gnuplot
gnuplot message.gnuplot
gnuplot pipes.gnuplot
gnuplot shared.gnuplot
gnuplot socketlocal.gnuplot
gnuplot tcpsthroughput.gnuplot
gnuplot udps.gnuplot
# generate time per operation data from log files
datagettime:
gendat ./fifoclient.write.log.Linux >./fifoclient.write.datat.Linux
gendat ./fifoclient.write.log.SunOS5 >./fifoclient.write.datat.SunOS5
gendat ./fifoclient.write.log.hpux >./fifoclient.write.datat.hpux
gendat ./fifoserver.read.log.Linux >./fifoserver.read.datat.Linux
gendat ./fifoserver.read.log.SunOS5 >./fifoserver.read.datat.SunOS5
gendat ./fifoserver.read.log.hpux >./fifoserver.read.datat.hpux
gendat ./message.log.Linux >./message.datat.Linux
gendat ./message.log.SunOS5 >./message.datat.SunOS5
gendat ./message.log.hpux >./message.datat.hpux
gendat ./pipes.read.log.Linux >./pipes.read.datat.Linux
gendat ./pipes.read.log.SunOS5 >./pipes.read.datat.SunOS5
gendat ./pipes.read.log.hpux >./pipes.read.datat.hpux
gendat ./pipes.read2.log.Linux >./pipes.read2.datat.Linux
gendat ./pipes.read2.log.SunOS5 >./pipes.read2.datat.SunOS5
gendat ./pipes.read2.log.hpux >./pipes.read2.datat.hpux
gendat ./pipes.write.log.Linux >./pipes.write.datat.Linux
gendat ./pipes.write.log.SunOS5 >./pipes.write.datat.SunOS5
gendat ./pipes.write.log.hpux >./pipes.write.datat.hpux
gendat ./pipes.write2.log.Linux >./pipes.write2.datat.Linux
gendat ./pipes.write2.log.SunOS5 >./pipes.write2.datat.SunOS5
gendat ./pipes.write2.log.hpux >./pipes.write2.datat.hpux
# gendat ./semaphore.log.Linux >./semaphore.datat.Linux
# gendat ./semaphore.log.SunOS5 >./semaphore.datat.SunOS5
# gendat ./semaphore.log.hpux >./semaphore.datat.hpux
gendat ./shared.log.Linux >./shared.datat.Linux
gendat ./shared.log.SunOS5 >./shared.datat.SunOS5
gendat ./shared.log.hpux >./shared.datat.hpux
# gendat ./signaloverhead.log.Linux >./signaloverhead.datat.Linux
# gendat ./signaloverhead.log.SunOS5 >./signaloverhead.datat.SunOS5
# gendat ./signaloverhead.log.hpux >./signaloverhead.datat.hpux
gendat ./socketlocal.read.log.Linux >./socketlocal.read.datat.Linux
gendat ./socketlocal.read.log.SunOS5 >./socketlocal.read.datat.SunOS5
gendat ./socketlocal.read.log.hpux >./socketlocal.read.datat.hpux
gendat ./socketlocal.read2.log.Linux >./socketlocal.read2.datat.Linux
gendat ./socketlocal.read2.log.SunOS5 >./socketlocal.read2.datat.SunOS5
gendat ./socketlocal.read2.log.hpux >./socketlocal.read2.datat.hpux
gendat ./socketlocal.write.log.Linux >./socketlocal.write.datat.Linux
gendat ./socketlocal.write.log.SunOS5 >./socketlocal.write.datat.SunOS5
gendat ./socketlocal.write.log.hpux >./socketlocal.write.datat.hpux
gendat ./socketlocal.write2.log.Linux >./socketlocal.write2.datat.Linux
gendat ./socketlocal.write2.log.SunOS5 >./socketlocal.write2.datat.SunOS5
gendat ./socketlocal.write2.log.hpux >./socketlocal.write2.datat.hpux
# gendat ./tcpsclientoverhead.mes.log.Linux >./tcpsclientoverhead.mes.datat.Linux
# gendat ./tcpsclientoverhead.mes.log.SunOS5 >./tcpsclientoverhead.mes.datat.SunOS5
# gendat ./tcpsclientoverhead.mes.log.aidanpike >./tcpsclientoverhead.mes.datat.aidanpike
# gendat ./tcpsclientoverhead.mes.log.hphp >./tcpsclientoverhead.mes.datat.hphp
# gendat ./tcpsclientoverhead.mes.log.hpux >./tcpsclientoverhead.mes.datat.hpux
gendat ./tcpsclientthroughput.write.log.Linux >./tcpsclientthroughput.write.datat.Linux
gendat ./tcpsclientthroughput.write.log.SunOS5 >./tcpsclientthroughput.write.datat.SunOS5
gendat ./tcpsclientthroughput.write.log.aidanpike >./tcpsclientthroughput.write.datat.aidanpike
gendat ./tcpsclientthroughput.write.log.hphp >./tcpsclientthroughput.write.datat.hphp
gendat ./tcpsclientthroughput.write.log.hpux >./tcpsclientthroughput.write.datat.hpux
gendat ./tcpsserverconcurrent.read.log.Linux >./tcpsserverconcurrent.read.datat.Linux
gendat ./tcpsserverconcurrent.read.log.SunOS5 >./tcpsserverconcurrent.read.datat.SunOS5
gendat ./tcpsserverconcurrent.read.log.aidanpike >./tcpsserverconcurrent.read.datat.aidanpike
gendat ./tcpsserverconcurrent.read.log.hphp >./tcpsserverconcurrent.read.datat.hphp
gendat ./tcpsserverconcurrent.read.log.hpux >./tcpsserverconcurrent.read.datat.hpux
# gendat ./timeroverhead.log.Linux >./timeroverhead.datat.Linux
# gendat ./timeroverhead.log.SunOS5 >./timeroverhead.datat.SunOS5
# gendat ./timeroverhead.log.hpux >./timeroverhead.datat.hpux
gendat ./udpsclient.mes.log.Linux >./udpsclient.mes.datat.Linux
gendat ./udpsclient.mes.log.SunOS5 >./udpsclient.mes.datat.SunOS5
gendat ./udpsclient.mes.log.aidanpike >./udpsclient.mes.datat.aidanpike
gendat ./udpsclient.mes.log.hpux >./udpsclient.mes.datat.hpux
# gendat ./udpsclient.mes2.log.Linux >./udpsclient.mes2.datat.Linux
# gendat ./udpsclient.mes2.log.SunOS5 >./udpsclient.mes2.datat.SunOS5
# gendat ./udpsclient.mes2.log.aidanpike >./udpsclient.mes2.datat.aidanpike
# gendat ./udpsclient.mes2.log.hpux >./udpsclient.mes2.datat.hpux
include ../Makefile.def2