DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=43002>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=43002 [EMAIL PROTECTED] changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED ------- Additional Comments From [EMAIL PROTECTED] 2007-07-31 10:48 ------- The response payload is about ~10K with JSP's that call Java application code. Normal unladen execution times are about ~8ms. The web pages include one or more images/flash applications. The test client ignores these however. There are NO SLEEPS between requests, as we are trying to similate normal traffic through our load balancing appliances. I'm attaching the grinder config file and JPython test script. Here is the grinder configuration file: ==================================================================== # grinder configuration ##### Required fields ##### PROJECT=RefAppLoadTest #TEST_SCRIPT=ReferenceAppTest_S9_DualNic_noimages_random_nosleep.py #TEST_SCRIPT=ReferenceAppTest_noimages_random_nosleep.py TEST_SCRIPT=ReferenceAppTest_DefaultContext_Random_NoSleep.py #TEST_SCRIPT=ReferenceAppTest_noimages_nosleep_spiking.py #TEST_SCRIPT=ReferenceAppTest_DefaultContext_Random_20RPS_rhvm2-3-4.py #TEST_SCRIPT=ReferenceAppTest_DefaultContext_Random_TestResults1field_5RPS.py # Duration of the full test (minutes) # This time must match the time required for the test script # to run TEST_DURATION=10 #TEST_RUNS=2 # The users will be evenly distributed across all clients, # using the floor of NUM_USERS/LOAD_CLIENTS LINUX_LOAD_CLIENTS=sedplatfc5,sedplatfc3,sedplatfc4 #LINUX_LOAD_CLIENTS=sedplatfc5 WIN_LOAD_CLIENTS= # Total number of users across all load clients NUM_USERS=120 # Number of users to start with each grouping USERS_IN_GROUP=30 # Time in seconds between the start of each group of users GROUP_RAMPUP_TIME=120 # Total number of spike users SPIKE=0 # How long between spikes in seconds SPIKE_INTERVAL=180 # Deviation around the spike in milliseconds SPIKE_SIGMA=750 # The server to test # Barista sedplat9 #TARGET_SERVER=sedplat9:9100 # Tomcat sedplat9 #TARGET_SERVER=sedplat9:9000 # Tomcat sedplat3 #TARGET_SERVER=sedplat3:9000 #TARGET_SERVER=sedplat4:9000 #Tomcat on Red Hat #TARGET_SERVER=sedplatfc1:9000 #Tomcat on Red Hat Virtual TARGET_SERVER=sedplat9.go.com:9000 #Stouted Ref App #TARGET_SERVER=sedplat5 #Quantified Stouted Advarked Ref App #TARGET_SERVER=sedplat8:8082 # The process to monitor on the server #TARGET_PROCESS=DPReferenceAppB TARGET_PROCESS=DPReferenceApp. #TARGET_PROCESS=inetinfo # The interval to retrieve performance data samples from the server (seconds) SAMPLING_PERIOD=5 ##### Optional fields ##### # Defaults to no perfmon logging #PERFMON=true # Defaults to true USE_CONSOLE=true Here is the Python script ===================================================================== # The Grinder 3.0-beta30 # HTTP script recorded by TCPProxy at Sep 28, 2006 3:16:38 PM import random from net.grinder.script import Test from net.grinder.script.Grinder import grinder from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest from HTTPClient import NVPair connectionDefaults = HTTPPluginControl.getConnectionDefaults() httpUtilities = HTTPPluginControl.getHTTPUtilities() requestsPerSecond = 50 # To use a proxy server, uncomment the next line and set the host and port. # connectionDefaults.setProxyServer("localhost", 8001) # These definitions at the top level of the file are evaluated once, # when the worker process is started. connectionDefaults.defaultHeaders = \ ( NVPair('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7'), NVPair('Accept-Encoding', 'gzip,deflate'), NVPair('Accept-Language', 'en-us,en;q=0.5'), NVPair('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'), NVPair('INLINEREPLACE', 'Yes'), ) headers= \ ( NVPair ('Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/ plain;q=0.8,image/png,*/*;q=0.5'), NVPair ('Referer', 'http://sedplat9.go.com:9000/ReferenceApplication/ReferenceApplicati on/dynamic/homePage'), ) url0 = 'http://sedplat9.go.com:9000' articleIds = ['36', '113', '114', '115', '116', '117', '118', '119', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '13 0', '132', '622'] aboutIds = ['314','315','316','317','318', '319', '320', '321', '621'] # Create an HTTPRequest for each request, then replace the # reference to the HTTPRequest with an instrumented version. # You can access the unadorned instance using request101.__target__. homePageRequest = HTTPRequest(url=url0, headers=headers) homePageRequest = Test(1, 'Homepage').wrap(homePageRequest) eventHomeRequest = HTTPRequest(url=url0, headers=headers) eventHomeRequest = Test(2, 'Event Home Page').wrap(eventHomeRequest) eventRequest = HTTPRequest(url=url0, headers=headers) eventRequest = Test(3, 'Event Page').wrap(eventRequest) eventItemRequest = HTTPRequest(url=url0, headers=headers) eventItemRequest = Test(4, 'Event Item Page').wrap(eventItemRequest) newsPageRequest = HTTPRequest(url=url0, headers=headers) newsPageRequest = Test(5, 'News Page').wrap(newsPageRequest) newsArticleRequest = HTTPRequest(url=url0, headers=headers) newsArticleRequest = Test(6, 'News Article').wrap(newsArticleRequest) aboutRequest = HTTPRequest(url=url0, headers=headers) aboutRequest = Test(7, 'News Article').wrap(aboutRequest) class TestRunner: """A TestRunner instance is created for each worker thread.""" def __init__(self): ####### INCLUDE THESE TWO LINES TO HAVE GROUP RAMPUP TIME #################### threadGroup = grinder.threadID / 30 grinder.sleep((1000 * 120 * threadGroup) + INITIAL_SLEEP_TIME, 0) ####### END RAMPUP TIME ###################################################### self.sleepTime = 1000 / requestsPerSecond # Home Page def getHomePage(self): result = homePageRequest.GET('/ReferenceApplication/dynamic/homepage') self.token_appRedirect = \ httpUtilities.valueFromBodyURI('appRedirect') # 'homepage' self.token_count = \ httpUtilities.valueFromHiddenInput('count') # '0' self.token_login_submit = \ httpUtilities.valueFromHiddenInput('login_submit') # '1' return result # Single method for any Event pages def getEventHomePage(self): result = eventHomeRequest.GET('/ReferenceApplication/dynamic/eventspage') self.token_appRedirect = \ httpUtilities.valueFromBodyURI('appRedirect') # 'homepage' return result # Single method for any Event pages def getEventPage(self, dateStr): result = eventRequest.GET('/ReferenceApplication/dynamic/eventspage?date=' + dateStr) return result def getNewsPage(self): result = newsPageRequest.GET('/ReferenceApplication/dynamic/newsPage') self.token_appRedirect = \ httpUtilities.valueFromBodyURI('appRedirect') # 'newsPage' return result def getNewsArticlePage(self, id): result = newsArticleRequest.GET('/ReferenceApplication/dynamic/newsArticle? id=' + id) return result def getAboutPage(self, id): result = aboutRequest.GET('/ReferenceApplication/dynamic/aboutFeature?id=' + id) return result def getEventItemPage(self, eventId): result = eventItemRequest.GET('/ReferenceApplication/dynamic/aboutEvent? id=' + str(eventId)) return result def __call__(self): """This method is called for every run performed by the worker thread.""" self.getHomePage() # GET homepage self.getEventHomePage() # GET default eventspage eventMonthStr = '20060701' # Randomly request 3 of the 5 eventpages for i in range(3): rand = random.randint(0,4) if rand == 0: eventMonthStr = '20060701' elif rand == 1: eventMonthStr = '20060801' elif rand == 2: eventMonthStr = '20060901' elif rand == 3: eventMonthStr = '20061001' elif rand == 4: eventMonthStr = '20061101' self.getEventPage(eventMonthStr) #Randomly pick 3 events. Events range from 133-286, 325-355, 587-617 eventId = random.randint(133,286) self.getEventItemPage(eventId) eventId = random.randint(325,355) self.getEventItemPage(eventId) eventId = random.randint(587,617) self.getEventItemPage(eventId) # GET default newspage self.getNewsPage() # Randomly request 4 newsarticles for i in range(4): idx = random.randint(0,len(articleIds)-1) self.getNewsArticlePage(articleIds[idx]) # Randomly request 3 abouttopics for i in range(3): idx = random.randint(0,len(aboutIds)-1) self.getAboutPage(aboutIds[idx]) #grinder.sleep(self.sleepTime) -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]