Revision: 9299 http://trac.macosforge.org/projects/calendarserver/changeset/9299 Author: glyph@apple.com Date: 2012-05-24 15:18:24 -0700 (Thu, 24 May 2012) Log Message: ----------- Whitespace. Modified Paths: -------------- CalendarServer/trunk/contrib/performance/loadtest/config.plist Property Changed: ---------------- CalendarServer/trunk/ Modified: CalendarServer/trunk/contrib/performance/loadtest/config.plist =================================================================== --- CalendarServer/trunk/contrib/performance/loadtest/config.plist 2012-05-24 22:13:27 UTC (rev 9298) +++ CalendarServer/trunk/contrib/performance/loadtest/config.plist 2012-05-24 22:18:24 UTC (rev 9299) @@ -28,19 +28,19 @@ <dict> <key>enabled</key> <true/> - + <key>HTTPPort</key> <integer>8080</integer> </dict> - <!-- Define the credentials of the clients which will be used to load test + <!-- Define the credentials of the clients which will be used to load test the server. These credentials must already be valid on the server. --> <key>accounts</key> <dict> - <!-- The loader is the fully-qualified Python name of a callable which - returns a list of directory service records defining all of the client accounts - to use. contrib.performance.loadtest.sim.recordsFromCSVFile reads username, - password, mailto triples from a CSV file and returns them as a list of faked + <!-- The loader is the fully-qualified Python name of a callable which + returns a list of directory service records defining all of the client accounts + to use. contrib.performance.loadtest.sim.recordsFromCSVFile reads username, + password, mailto triples from a CSV file and returns them as a list of faked directory service records. --> <key>loader</key> <string>contrib.performance.loadtest.sim.recordsFromCSVFile</string> @@ -48,24 +48,24 @@ <!-- Keyword arguments may be passed to the loader. --> <key>params</key> <dict> - <!-- recordsFromCSVFile interprets the path relative to the config.plist, - to make it independent of the script's working directory while still allowing + <!-- recordsFromCSVFile interprets the path relative to the config.plist, + to make it independent of the script's working directory while still allowing a relative path. This isn't a great solution. --> <key>path</key> <string>contrib/performance/loadtest/accounts.csv</string> </dict> </dict> - <!-- Define how many clients will participate in the load test and how + <!-- Define how many clients will participate in the load test and how they will show up. --> <key>arrival</key> <dict> - <!-- Specify a class which creates new clients and introduces them into - the test. contrib.performance.loadtest.population.SmoothRampUp introduces - groups of new clients at fixed intervals up to a maximum. The size of the - group, interval, and maximum are configured by the parameters below. The - total number of clients is groups * groupSize, which needs to be no larger + <!-- Specify a class which creates new clients and introduces them into + the test. contrib.performance.loadtest.population.SmoothRampUp introduces + groups of new clients at fixed intervals up to a maximum. The size of the + group, interval, and maximum are configured by the parameters below. The + total number of clients is groups * groupSize, which needs to be no larger than the number of credentials created in the accounts section. --> <key>factory</key> <string>contrib.performance.loadtest.population.SmoothRampUp</string> @@ -76,7 +76,7 @@ <key>groups</key> <integer>20</integer> - <!-- groupSize is the number of clients in each group of clients. It's + <!-- groupSize is the number of clients in each group of clients. It's really only a "smooth" ramp up if this is pretty small. --> <key>groupSize</key> <integer>1</integer> @@ -93,11 +93,11 @@ </dict> - <!-- Define the kinds of software and user behavior the load simulation + <!-- Define the kinds of software and user behavior the load simulation will simulate. --> <key>clients</key> - <!-- Have as many different kinds of software and user behavior configurations + <!-- Have as many different kinds of software and user behavior configurations as you want. Each is a dict --> <array> @@ -110,15 +110,15 @@ <!-- Arguments to use to initialize the OS_X_10_7 instance. --> <key>params</key> <dict> - <!-- OS_X_10_7 can poll the calendar home at some interval. This is + <!-- OS_X_10_7 can poll the calendar home at some interval. This is in seconds. --> <key>calendarHomePollInterval</key> <integer>30</integer> - <!-- If the server advertises xmpp push, OS_X_10_7 can wait for notifications - about calendar home changes instead of polling for them periodically. If - this option is true, then look for the server advertisement for xmpp push - and use it if possible. Still fall back to polling if there is no xmpp push + <!-- If the server advertises xmpp push, OS_X_10_7 can wait for notifications + about calendar home changes instead of polling for them periodically. If + this option is true, then look for the server advertisement for xmpp push + and use it if possible. Still fall back to polling if there is no xmpp push advertised. --> <key>supportPush</key> <false /> @@ -131,12 +131,12 @@ <integer>62311</integer> </dict> - <!-- The profiles define certain types of user behavior on top of the + <!-- The profiles define certain types of user behavior on top of the client software being simulated. --> <key>profiles</key> <array> - <!-- First an event-creating profile, which will periodically create + <!-- First an event-creating profile, which will periodically create new events at a random time on a random calendar. --> <dict> <key>class</key> @@ -147,19 +147,19 @@ <key>enabled</key> <true/> - <!-- Define the interval (in seconds) at which this profile will use + <!-- Define the interval (in seconds) at which this profile will use its client to create a new event. --> <key>interval</key> <integer>60</integer> - <!-- Define how start times (DTSTART) for the randomly generated events - will be selected. This is an example of a "Distribution" parameter. The value + <!-- Define how start times (DTSTART) for the randomly generated events + will be selected. This is an example of a "Distribution" parameter. The value for most "Distribution" parameters are interchangeable and extensible. --> <key>eventStartDistribution</key> <dict> - <!-- This distribution is pretty specialized. It produces timestamps - in the near future, limited to certain days of the week and certain hours + <!-- This distribution is pretty specialized. It produces timestamps + in the near future, limited to certain days of the week and certain hours of the day. --> <key>type</key> <string>contrib.performance.stats.WorkDistribution</string> @@ -180,12 +180,12 @@ <key>beginHour</key> <integer>8</integer> - <!-- And the latest hour of a day (at which an event will be scheduled + <!-- And the latest hour of a day (at which an event will be scheduled to begin!). --> <key>endHour</key> <integer>16</integer> - <!-- The timezone in which the event is scheduled. (XXX Does this + <!-- The timezone in which the event is scheduled. (XXX Does this really work right?) --> <key>tzname</key> <string>America/Los_Angeles</string> @@ -194,7 +194,7 @@ </dict> </dict> - <!-- This profile invites new attendees to existing events. + <!-- This profile invites new attendees to existing events. This profile should no longer be used - use RealisticInviter instead. --> <dict> <key>class</key> @@ -222,9 +222,9 @@ </dict> </dict> - <!-- Define the distribution of who will be invited to an event. Each - set of credentials loaded by the load tester has an index; samples from this - distribution will be added to that index to arrive at the index of some other + <!-- Define the distribution of who will be invited to an event. Each + set of credentials loaded by the load tester has an index; samples from this + distribution will be added to that index to arrive at the index of some other credentials, which will be the target of the invitation. --> <key>inviteeDistanceDistribution</key> <dict> @@ -270,9 +270,9 @@ </dict> </dict> - <!-- Define the distribution of who will be invited to an event. Each - set of credentials loaded by the load tester has an index; samples from this - distribution will be added to that index to arrive at the index of some other + <!-- Define the distribution of who will be invited to an event. Each + set of credentials loaded by the load tester has an index; samples from this + distribution will be added to that index to arrive at the index of some other credentials, which will be the target of the invitation. --> <key>inviteeDistanceDistribution</key> <dict> @@ -320,14 +320,14 @@ </dict> </dict> - <!-- Define how start times (DTSTART) for the randomly generated events - will be selected. This is an example of a "Distribution" parameter. The value + <!-- Define how start times (DTSTART) for the randomly generated events + will be selected. This is an example of a "Distribution" parameter. The value for most "Distribution" parameters are interchangeable and extensible. --> <key>eventStartDistribution</key> <dict> - <!-- This distribution is pretty specialized. It produces timestamps - in the near future, limited to certain days of the week and certain hours + <!-- This distribution is pretty specialized. It produces timestamps + in the near future, limited to certain days of the week and certain hours of the day. --> <key>type</key> <string>contrib.performance.stats.WorkDistribution</string> @@ -348,12 +348,12 @@ <key>beginHour</key> <integer>8</integer> - <!-- And the latest hour of a day (at which an event will be scheduled + <!-- And the latest hour of a day (at which an event will be scheduled to begin!). --> <key>endHour</key> <integer>16</integer> - <!-- The timezone in which the event is scheduled. (XXX Does this + <!-- The timezone in which the event is scheduled. (XXX Does this really work right?) --> <key>tzname</key> <string>America/Los_Angeles</string> @@ -373,7 +373,7 @@ <key>enabled</key> <true/> - <!-- Define how long to wait after seeing a new invitation before + <!-- Define how long to wait after seeing a new invitation before accepting it. --> <key>acceptDelayDistribution</key> <dict> @@ -392,7 +392,7 @@ </dict> </dict> - <!-- A task-creating profile, which will periodically create + <!-- A task-creating profile, which will periodically create new tasks at a random time on a random calendar. --> <dict> <key>class</key> @@ -403,19 +403,19 @@ <key>enabled</key> <true/> - <!-- Define the interval (in seconds) at which this profile will use + <!-- Define the interval (in seconds) at which this profile will use its client to create a new task. --> <key>interval</key> <integer>300</integer> - <!-- Define how due times (DUE) for the randomly generated tasks - will be selected. This is an example of a "Distribution" parameter. The value + <!-- Define how due times (DUE) for the randomly generated tasks + will be selected. This is an example of a "Distribution" parameter. The value for most "Distribution" parameters are interchangeable and extensible. --> <key>taskDueDistribution</key> <dict> - <!-- This distribution is pretty specialized. It produces timestamps - in the near future, limited to certain days of the week and certain hours + <!-- This distribution is pretty specialized. It produces timestamps + in the near future, limited to certain days of the week and certain hours of the day. --> <key>type</key> <string>contrib.performance.stats.WorkDistribution</string> @@ -436,12 +436,12 @@ <key>beginHour</key> <integer>8</integer> - <!-- And the latest hour of a day (at which an event will be scheduled + <!-- And the latest hour of a day (at which an event will be scheduled to begin!). --> <key>endHour</key> <integer>16</integer> - <!-- The timezone in which the event is scheduled. (XXX Does this + <!-- The timezone in which the event is scheduled. (XXX Does this really work right?) --> <key>tzname</key> <string>America/Los_Angeles</string> @@ -452,7 +452,7 @@ </array> - <!-- Determine the frequency at which this client configuration will + <!-- Determine the frequency at which this client configuration will appear in the clients which are created by the load tester. --> <key>weight</key> <integer>1</integer> @@ -462,16 +462,16 @@ <!-- Define some log observers to report on the load test. --> <key>observers</key> <array> - <!-- ReportStatistics generates an end-of-run summary of the HTTP requests + <!-- ReportStatistics generates an end-of-run summary of the HTTP requests made, their timings, and their results. --> <string>contrib.performance.loadtest.population.ReportStatistics</string> - <!-- RequestLogger generates a realtime log of all HTTP requests made + <!-- RequestLogger generates a realtime log of all HTTP requests made during the load test. --> <string>contrib.performance.loadtest.ical.RequestLogger</string> - <!-- OperationLogger generates an end-of-run summary of the gross operations - performed (logical operations which may span more than one HTTP request, + <!-- OperationLogger generates an end-of-run summary of the gross operations + performed (logical operations which may span more than one HTTP request, such as inviting an attendee to an event). --> <string>contrib.performance.loadtest.profiles.OperationLogger</string> </array>