#!/bin/bash # # Copyright 2012 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Author: morlovich@google.com (Maksim Orlovich) # # Helpers for doing experiments with lots of vhosts. # # usage: # scripts/lots_of_vhosts.sh --config | --traffic # # You can also set envvar NUM_VHOSTS to configure how many hosts to use. set -e # exit script if any command returns an error set -u # exit the script if any variable is uninitialized NUM_VHOSTS=${NUM_VHOSTS:-10000} function usage { cat <&2 Usage: scripts/lots_of_vhosts.sh --config | --traffic --config generates a suffix for pagespeed.conf --traffic generates a list of URLs for trace_stress_test.sh You can also set environment variable NUM_VHOSTS to control the number of virtual hosts produced. See also https://github.com/pagespeed/mod_pagespeed/wiki/Memory-Profiling EOF } function config { echo "NameVirtualHost *:8080" for i in $(seq 0 $NUM_VHOSTS); do echo "" echo " DocumentRoot $HOME/apache2/htdocs/" echo " ServerName vhost"$i".example.com" echo " ModPagespeed on" echo " ModPagespeedFileCachePath \"/tmp/vhost\"" echo " ModPagespeedBlockingRewriteKey \"foo"$i"\"" echo "" done } function traffic { for i in $(seq 0 $NUM_VHOSTS); do echo "http://vhost"$i".example.com/mod_pagespeed_example/" done } if [ $# -ne 1 ]; then usage exit 1 fi case $1 in --config) config;; --traffic) traffic;; *) usage exit 1 ;; esac