# 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" >> $@