# For legal info, see file "info.rkt".
RACKET_SUFFIX =
#RACKET_SUFFIX = cgc
.PHONY:: run-sample-1
run-sample-1:
racket sample-1.ss
RACKET ?= racket$(RACKET_SUFFIX)
APACHE = /usr/sbin/apache2
APACHE_MODULES_DIR = /usr/lib/apache2/modules
APACHE_HOSTIP = 127.0.0.1
APACHE_HOSTNAME = localhost
APACHE_PORT = 8888
APACHE_CONF = apache-conf
APACHE_LOCK = apache-lock
APACHE_PID = apache-pid
APACHE_ERROR_LOG = apache-error-log
APACHE_ROOT = $(CURDIR)
STRESS1_SCGI_HOSTIP = 127.0.0.1
STRESS1_SCGI_PORT = 4000
STRESS1_SLEEP = 0
STRESS1_URL_PATH = /stress1
STRESS1_URL = http://$(APACHE_HOSTIP):$(APACHE_PORT)$(STRESS1_URL_PATH)
STRESS1_AB_LOG = stress1-ab-log
STRESS1_BIGPOST_FILE = stress1-bigpost-payload~
clean:: stop-apache-if-running
/bin/rm *~ $(APACHE_CONF) $(APACHE_ERROR_LOG) $(APACHE_LOCK) $(APACHE_PID) $(STRESS1_AB_LOG) $(STRESS1_BIGPOST_FILE) || exit 0
.PHONY:: run-stress1-server
run-stress1-server:
# STRESS1_SCGI_PORT=$(STRESS1_SCGI_PORT) STRESS1_SLEEP=$(STRESS1_SLEEP) PLTSTDERR=debug $(RACKET) stress1-server.rkt
STRESS1_SCGI_PORT=$(STRESS1_SCGI_PORT) STRESS1_SLEEP=$(STRESS1_SLEEP) $(RACKET) stress1-server.rkt
.PHONY:: start-apache
start-apache: stop-apache-if-running $(APACHE_CONF)
$(APACHE) -f $(CURDIR)/$(APACHE_CONF) -k start
while [ ! -f $(APACHE_PID) ] ; do sleep 1 ; done
cat $(APACHE_PID)
@echo "STRESS1_URL: $(STRESS1_URL)"
.PHONY:: stop-apache
stop-apache:
$(APACHE) -f $(CURDIR)/$(APACHE_CONF) -k stop
while [ -f $(APACHE_PID) ] ; do sleep 1 ; done
.PHONY:: stop-apache-if-running
stop-apache-if-running:
([ -f $(APACHE_PID) ] && $(MAKE) stop-apache) || exit 0
.PHONY:: run-apache
run-apache: stop-apache-if-running
/bin/rm '$(APACHE_ERROR_LOG)' || exit 0
$(MAKE) start-apache
tail -f '$(APACHE_ERROR_LOG)'
STRESS1_AB_N ?= 1000
STRESS1_AB_C ?= 10
.PHONY:: run-stress1-ab
run-stress1-ab:
/usr/bin/ab -n $(STRESS1_AB_N) -c $(STRESS1_AB_C) '$(STRESS1_URL)' 2>&1 | tee $(STRESS1_AB_LOG)
echo "" >> $(STRESS1_AB_LOG)
echo "---- NETSTAT ----" >> $(STRESS1_AB_LOG)
-netstat -t -n | egrep ':($(STRESS1_SCGI_PORT)|$(APACHE_PORT)) ' | sort >> $(STRESS1_AB_LOG)
.PHONY:: run-stress1-ab-long
run-stress1-ab-long:
$(MAKE) STRESS1_AB_N=50000 run-stress1-ab
Stress1WgetTimeoutRequestFunc = wget '$(STRESS1_URL)' --no-verbose --output-document=/dev/null --progress=dot --timeout=0.1 --tries=1
.PHONY:: stress1-wget-timeout-request
stress1-wget-timeout-request:
$(call Stress1WgetTimeoutRequestFunc) || exit 0
.PHONY:: stress1-wget-timeout-request-storm
stress1-wget-timeout-request-storm:
I=1000 ; while [ $$I -gt 0 ] ; do I=`expr $$I - 1` ; $(call Stress1WgetTimeoutRequestFunc) ; done
Stress1CurlTimeoutRequestFunc = curl '$(STRESS1_URL)' --max-time 1 --output /dev/null --retry 0
.PHONY:: stress1-curl-timeout-request
stress1-curl-timeout-request:
$(call Stress1CurlTimeoutRequestFunc) || exit 0
.PHONY:: stress1-curl-timeout-request-storm
stress1-curl-timeout-request-storm:
I=1000 ; while [ $$I -gt 0 ] ; do I=`expr $$I - 1` ; $(call Stress1CurlTimeoutRequestFunc) ; done
Stress1BigpostRequestFunc = curl '$(STRESS1_URL)' --output /dev/null --retry 0 -F 'myfile=@$(STRESS1_BIGPOST_FILE)'
.PHONY:: stress1-bigpost-request
stress1-bigpost-request: $(STRESS1_BIGPOST_FILE)
$(call Stress1BigpostRequestFunc) || exit 0
.PHONY:: stress1-bigpost-request-storm
stress1-bigpost-request-storm: $(STRESS1_BIGPOST_FILE)
I=1000 ; while [ $$I -gt 0 ] ; do I=`expr $$I - 1` ; $(call Stress1BigpostRequestFunc) ; done
$(STRESS1_BIGPOST_FILE):
dd if=/dev/urandom of='$@' bs=9999 count=9999 || (/bin/rm '$@' ; exit 1)
$(APACHE_CONF): Makefile
cat /dev/null > $@
echo "# THIS FILE IS GENERATED BY \"Makefile\"" >> $@
echo "" >> $@
echo "LoadModule scgi_module $(APACHE_MODULES_DIR)/mod_scgi.so" >> $@
echo "" >> $@
echo "ServerRoot $(APACHE_ROOT)" >> $@
echo "LockFile $(APACHE_LOCK)" >> $@
echo "PidFile $(APACHE_PID)" >> $@
echo "Timeout 300" >> $@
echo "KeepAlive On" >> $@
echo "MaxKeepAliveRequests 100" >> $@
echo "KeepAliveTimeout 15" >> $@
echo "" >> $@
echo " StartServers 5" >> $@
echo " MinSpareServers 5" >> $@
echo " MaxSpareServers 10" >> $@
echo " MaxClients 150" >> $@
echo " MaxRequestsPerChild 0" >> $@
echo "" >> $@
echo "" >> $@
echo " StartServers 2" >> $@
echo " MaxClients 150" >> $@
echo " MinSpareThreads 25" >> $@
echo " MaxSpareThreads 75 " >> $@
echo " ThreadsPerChild 25" >> $@
echo " MaxRequestsPerChild 0" >> $@
echo "" >> $@
echo "DefaultType text/plain" >> $@
echo "HostnameLookups Off" >> $@
echo "ErrorLog $(APACHE_ERROR_LOG)" >> $@
echo "LogLevel warn" >> $@
echo "Listen $(APACHE_HOSTIP):$(APACHE_PORT)" >> $@
echo "DocumentRoot /tmp" >> $@
echo "" >> $@
echo " Options None" >> $@
echo " AllowOverride None" >> $@
echo "" >> $@
echo "SCGIMount $(STRESS1_URL_PATH) $(STRESS1_SCGI_HOSTIP):$(STRESS1_SCGI_PORT)" >> $@
echo "SCGIServerTimeout 600" >> $@
echo "" >> $@
echo "# EOF" >> $@