| Literature DB >> 29706857 |
Christian Vögele1, André van Hoorn2, Eike Schulz3, Wilhelm Hasselbring4, Helmut Krcmar5.
Abstract
The specification of workloads is required in order to evaluate performance characteristics of application systems using load testing and model-based performance prediction. Defining workload specifications that represent the real workload as accurately as possible is one of the biggest challenges in both areas. To overcome this challenge, this paper presents an approach that aims to automate the extraction and transformation of workload specifications for load testing and model-based performance prediction of session-based application systems. The approach (WESSBAS) comprises three main components. First, a system- and tool-agnostic domain-specific language (DSL) allows the layered modeling of workload specifications of session-based systems. Second, instances of this DSL are automatically extracted from recorded session logs of production systems. Third, these instances are transformed into executable workload specifications of load generation tools and model-based performance evaluation tools. We present transformations to the common load testing tool Apache JMeter and to the Palladio Component Model. Our approach is evaluated using the industry-standard benchmark SPECjEnterprise2010 and the World Cup 1998 access logs. Workload-specific characteristics (e.g., session lengths and arrival rates) and performance characteristics (e.g., response times and CPU utilizations) show that the extracted workloads match the measured workloads with high accuracy.Entities:
Keywords: Load testing; Performance models; Performance prediction; Workload specifications
Year: 2016 PMID: 29706857 PMCID: PMC5910480 DOI: 10.1007/s10270-016-0566-5
Source DB: PubMed Journal: Softw Syst Model ISSN: 1619-1366 Impact factor: 1.910
Fig. 1Overview of the WESSBAS approach
Fig. 2Exemplary workload model (without think times in the Behavior Models)
Fig. 3WESSBAS-DSL classes and relationships
Fig. 4Example of a WESSBAS-DSL model with a violated constraint (no Behavior Mix frequency sum of 1.0), opened in an EMF Form Editor
Fig. 5Example HTTP log (recorded with Kieker) and resulting session log
Fig. 6Exemplary translation rule in the Session Log Generator
Fig. 7Exemplary translation of temporal invariants to GaAs
Fig. 8An exemplary Behavior Model with measured probabilities and with conditional probabilities. a Measured probabilities. b Conditional probabilities
Probabilities and think times of a Behavior Model (see Fig. 2)
| Login* | View items | Add2cart | Remove | $ | |
|---|---|---|---|---|---|
| Login* | 0.0; n(0 0) | 0.3; n(3 0.3) | 0.3; n(3 0.2) | 0.4; n(5 0.9) | 0.0; n(0 0) |
| View items | 0.0; n(0 0) | 0.0; n(0 0) | 0.4; n(4 0.4) | 0.6; n(2 0.8) | 0.0; n(0 0) |
| Add2cart | 0.0; n(0 0) | 0.5; n(5 0.8) | 0.1; n(4 0.1) | 0.2; n(4 0.2) | 0.2; n(7 0.9) |
| Remove | 0.0; n(0 0) | 0.3; n(2 0.5) | 0.0; n(0 0) | 0.0; n(0 0) | 0.7; n(5 1.0) |
* Initial Markov State of a Behavior Model
Mapping of WESSBAS-DSL concepts to (Markov4)JMeter elements
| WESSBAS-DSL | Markov4JMeter elements |
|---|---|
| Session Layer FSM | Markov States (+outgoing transitions) |
| Protocol Layer FSMs | JMeter Elements (Markov State children) |
| Workload Intensity | MSC (Session Arrival Controller) |
| Behavior Models | MSC (frequency table) |
| Behavior Mix | MSC (frequency table) |
| Input parameter | User defined variables |
| Guards and actions | User parameters |
MSC Markov Session Controller
Fig. 9Example mapping of WESSBAS-DSL instances to (Markov4)JMeter Test Plan elements
Mapping of WESSBAS-DSL concepts to PCM Model elements
| WESSBAS-DSL | PCM Model elements |
|---|---|
| Session Layer FSMs | Repository Model (Basic Component, RDSEFF) |
| Protocol Layer FSMs | Not required |
| Workload Intensity | Usage Model (Open / Closed Workload) |
| Behavior Models | Repository Model (Basic Component, RDSEFF) |
| Behavior Mix | Usage Model (Branch) |
| Input parameters | Not required |
| Guards and actions | Parameter |
RDSEFF resource demanding service effect specification
Fig. 10Exemplary transformation to PCM. a Workload Model example. b PCM Repository Model example. c RDSEFF of behaviorModel1.view_items
Resulting GaAs
| From state | To state | Guards | Actions |
|---|---|---|---|
| Login | View items | Login | N/A |
| Login | Inventory | Login | Inventory |
| Login | View items quantity | Login | View_Items_quantitydeferorder |
| View items quantity | Add_to_Cart | N/A | Add_to_Cartdeferorder |
| Add_to_Cart | Defer order | Login&& View_Items_quantitydeferorder >0&& Add_to_Cartdeferorder >0 | View_Items_quantitydeferorder |
| Add_to_Cart | Purchasecart | Login&& View_Items_quantitypurchasecart >0&& Add_to_Cartpurchasecart >0 | View_Items_quantitypurchasecart |
| Add_to_Cart | Shoppingcart | Login&& View_Items_quantityshoppingcart >0&& Add_to_Cartshoppingcart >0 | View_Items_quantityshoppingcart |
| Add_to_Cart | View items quantity | Login | View_Items_quantitydeferorder |
| Shoppingcart | Clearcart | Login&& View_Items_quantityclearcart >0&& Add_to_Cartclearcart >0 | View_Items_quantityclearcart |
| Shoppingcart | Remove | Login&& View_Items_quantityremove >1&& Add_to_Cartremove >1 | View_Items_quantityremove |
| Remove | Defer order | Login&& View_Items_quantitydeferorder >0&& Add_to_Cartdeferorder >0 | View_Items_quantitydeferorder |
| Remove | Purchasecart | Login&& View_Items_quantitypurchasecart >0&& Add_to_Cartpurchasecart >0 | View_Items_quantitypurchasecart -1; Add_to_Cartpurchasecart |
| Remove | Shoppingcart | Login&& View_Items_quantityshoppingcart >0&& Add_to_Cartshoppingcart >0 | View_Items_quantityshoppingcart |
| Clearcart | View items quantity | N/A | View_Items_quantitydeferorder |
| Inventory | Sellinventory | Login&& Inventory | N/A |
| Inventory | Cancelorder | Login | N/A |
| Inventory | Inventory | Login | Inventory |
| Cancelorder | Inventory | N/A | Inventory |
| Sellinventory | Home | Login | N/A |
| Sellinventory | Sellinventory | Login&& inventory | N/A |
| View items | Home | Login | N/A |
| View items | View items | Login | N/A |
|
| |||
| View items quantity | Shoppingcart | Login&& View_Items_quantityshoppingcart >0&& Add_to_Cartshoppingcart >0 | View_Items_quantityshoppingcart |
| Shoppingcart | Purchasecart | Login&& View_Items_quantitypurchasecart >0&& Add_to_Cartpurchasecart >0 | View_Items_quantitypurchasecart |
| Shoppingcart | Defer order | Login&& View_Items_quantitydeferorder >0&& Add_to_Cartdeferorder >0 | View_Items_quantitydeferorder-1;Add_to_Cartdeferorder |
Fig. 11Hardware and software infrastructure
Fig. 12SPECjEnterprise2010 transactions Browse, Manage, and Purchase as Behavior Models. The transaction Modified Purchase is used for the evaluation of RQ 5 (see Sect. 7.4.6). The probabilities are rounded to two decimal places and the mean and standard deviation of the think times to one decimal place
Clustering results
| TM | T | X-means (min 3 cluster, max 3 cluster) | X-means (min 2 cluster, max 20 cluster) | N | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ED | NED | ED | NED | |||||||||||||||
| C1 | C2 | C3 | MC | C1 | C2 | C3 | MC | C1 | C2 | MC | C1 | C2 | C3 | C4 | MC | |||
| 50 | B | 10,346 | 0 | 0 | 3.03 % | 10,346 | 0 | 0 | 0 % | 10,346 | 0 | 24.64 % | 0 | 10,346 | 0 | 0 | 0.96 % | 19,890 |
| 25 | M | 0 | 0 | 5230 | 0 | 0 | 5230 | 0 | 5230 | 0 | 0 | 199 | 5031 | |||||
| 25 | P | 0 | 4468 | 625 | 0 | 5093 | 0 | 0 | 5093 | 5093 | 0 | 0 | 0 | |||||
| 25 | B | 0 | 0 | 5077 | 16.48 % | 5077 | 0 | 0 | 0 % | 0 | 5077 | 24.91 % | 0 | 0 | 0 | 5077 | 0.89 % | 20,395 |
| 25 | M | 0 | 5081 | 0 | 0 | 0 | 5081 | 5081 | 0 | 182 | 4899 | 0 | 0 | |||||
| 50 | P | 6875 | 3362 | 0 | 0 | 10,237 | 0 | 10,237 | 0 | 0 | 0 | 10,237 | 0 | |||||
| 25 | B | 0 | 5092 | 0 | 2.99 % | 5092 | 0 | 0 | 0 % | 5092 | 0 | 24.72 % | 0 | 0 | 0 | 5092 | 1.62 % | 20,125 |
| 50 | M | 10,058 | 0 | 0 | 0 | 0 | 10,058 | 0 | 10,058 | 326 | 9732 | 0 | 0 | |||||
| 25 | P | 586 | 0 | 4389 | 0 | 4975 | 0 | 0 | 4975 | 0 | 0 | 4975 | 0 | |||||
| 34 | B | 0 | 0 | 6917 | 4.1 % | 0 | 0 | 6917 | 0 % | 0 | 6917 | 32.9 % | 0 | 0 | 0 | 6917 | 1.16 % | 20,470 |
| 33 | M | 6818 | 0 | 0 | 6818 | 0 | 0 | 6818 | 0 | 6581 | 237 | 0 | 0 | |||||
| 33 | P | 840 | 5895 | 0 | 0 | 6735 | 0 | 6735 | 0 | 0 | 0 | 6735 | 0 | |||||
World Cup 1998 Logs: relative frequency of each request category per cluster
| Category | C1 | C2 | C3 | C4 |
|---|---|---|---|---|
| Mainlevel | 11.08 % | 31.79 % | 35.22 % | 55.67 % |
| /teams | 60.96 % | 48.10 % | 14.56 % | 11.68 % |
| /news | 14.03 % | 8.22 % | 18.07 % | 8.26 % |
| /competition | 5.34 % | 5.81 % | 8.02 % | 16.11 % |
| /enfetes | 0.96 % | 1.28 % | 3.05 % | 1.43 % |
| /playing | 0.98 % | 0.76 % | 3.27 % | 1.11 % |
| /playing/download | 0.61 % | 0.35 % | 2.77 % | 0.59 % |
| /history/past | 1.00 % | 0.52 % | 2.46 % | 0.62 % |
| /tickets | 0.71 % | 0.50 % | 2.29 % | 0.79 % |
| /playing/mascot | 0.52 % | 0.46 % | 2.14 % | 0.66 % |
| /venues | 0.39 % | 0.30 % | 1.31 % | 0.49 % |
| /venues/cities | 0.82 % | 0.32 % | 1.15 % | 0.36 % |
| /history | 0.38 % | 0.28 % | 1.00 % | 0.33 % |
| /help | 0.24 % | 0.23 % | 0.74 % | 0.37 % |
| /hosts/cfo | 0.23 % | 0.18 % | 0.77 % | 0.28 % |
| /member | 0.16 % | 0.21 % | 0.63 % | 0.34 % |
| /hosts/suppliers | 0.49 % | 0.07 % | 0.66 % | 0.34 % |
| /venues/venues | 0.46 % | 0.23 % | 0.59 % | 0.23 % |
| /history/history | 0.19 % | 0.14 % | 0.51 % | 0.16 % |
| /individuals | 0.31 % | 0.16 % | 0.29 % | 0.05 % |
| /hosts/fifa | 0.02 % | 0.05 % | 0.16 % | 0.05 % |
| /hosts/sponsors | 0.04 % | 0.02 % | 0.15 % | 0.04 % |
| /history/reading | 0.02 % | 0.02 % | 0.10 % | 0.03 % |
| /hosts/fff | 0.02 % | 0.01 % | 0.06 % | 0.02 % |
| /playing/rules | 0.01 % | 0.00 % | 0.01 % | 0.00 % |
| # sessions | 3447 | 8492 | 21,205 | 20,500 |
| Avg session length | 8.43 | 13.28 | 10.12 | 7.58 |
Summary statistics of session lengths
| Min |
| Med. | Mean | CI |
| Max |
| |
|---|---|---|---|---|---|---|---|---|
|
| 1 | 4 | 6 | 9.54 | [9.37, 9.72] | 11 | 1972 | 53,644 |
|
| 1 | 3 | 7 | 9.51 | [9.43, 9.58] | 13 | 91 | 53,326 |
Absolute and relative (Rel.) request counts
| Category | Orig. | JMeter | PCM | Rel. |
|---|---|---|---|---|
| Mainlevel | 201,167 | 199,569 | 199,165 | 0.39 |
| /teams | 121,354 | 120,043 | 119,871 | 0.24 |
| /news | 64,966 | 64,151 | 64,006 | 0.13 |
| /competition | 50,354 | 50,134 | 49,135 | 0.10 |
| /enfetes | 10,503 | 10,249 | 10,256 | 0.02 |
| /playing | 9875 | 10,043 | 9866 | 0.02 |
| /playing/download | 7429 | 7449 | 7265 | 0.01 |
| /history/past | 7096 | 7066 | 6813 | 0.01 |
| /tickets | 6922 | 6708 | 6791 | 0.01 |
| /playing/mascot | 6299 | 6134 | 6495 | 0.01 |
| /venues | 4014 | 3928 | 3929 | 0.01 |
| /venues/cities | 3633 | 3661 | 3726 | 0.01 |
| /history | 3088 | 2983 | 3081 | 0.01 |
| /help | 2505 | 2381 | 2449 | 0.00 |
| /hosts/cfo | 2340 | 2333 | 2296 | 0.00 |
| /member | 2165 | 2174 | 2203 | 0.00 |
| /hosts/suppliers | 2164 | 2168 | 2061 | 0.00 |
| /venues/venues | 2008 | 2063 | 2009 | 0.00 |
| /history/history | 1557 | 1400 | 1633 | 0.00 |
| /individuals | 950 | 863 | 974 | 0.00 |
| /hosts/fifa | 489 | 509 | 471 | 0.00 |
| /hosts/sponsors | 428 | 458 | 394 | 0.00 |
| /history/reading | 288 | 264 | 301 | 0.00 |
| /hosts/fff | 189 | 222 | 153 | 0.00 |
| /playing/rules | 41 | 49 | 31 | 0.00 |
| Sum | 511,824 | 507,002 | 505,374 | 1.00 |
Fig. 13800U-50B/25P/25M: Session length and duration statistics for the original workload (Orig.) and the synthetic workloads (ED-2, NED-3, NED-4). a Violin plot of session lengths. b Summary statistics of session lengths. c Violin plot of session durations. d Summary statistics of session durations (in s)
800U-50B/25P/25M: Request count statistics
| Request | Orig. | ED-2 | NED-3 | NED-4 | Rel. |
|---|---|---|---|---|---|
|
| |||||
| 1. Add to cart | 20,625 | 21,474 | 21,129 | 21,217 | 0.07 |
| 2. Cancel order | 191 | 198 | 176 | 168 | 0.00 |
| 3. Clear cart | 1932 | 2129 | 2011 | 1976 | 0.01 |
| 4. Defer order | 2236 | 2228 | 2218 | 2312 | 0.01 |
| 5. Home | 19,371 | 20,119 | 20,358 | 20,299 | 0.07 |
| 6. Inventory | 10,034 | 10,273 | 10,136 | 10,064 | 0.04 |
| 7. Login | 19,890 | 20,119 | 20,358 | 20,299 | 0.07 |
| 8. Logout | 19,372 | 20,119 | 20,358 | 20,299 | 0.07 |
| 9. Purchase cart | 2682 | 2780 | 2873 | 2795 | 0.01 |
| 10. Remove | 923 | 660 | 675 | 723 | 0.00 |
| 11. Sell inventory | 21,949 | 22,703 | 21,854 | 21,653 | 0.08 |
| 12. Shopping cart | 2855 | 2789 | 2686 | 2699 | 0.01 |
| 13. View items | 139,370 | 133,766 | 136,529 | 137,723 | 0.49 |
| 14. View items quantity | 20,625 | 21,474 | 21,129 | 21,217 | 0.07 |
|
| |||||
| 1. Add to cart | 20,625 | 22,416 | 22,466 | 21,936 | 0.07 |
| 2. Cancel order | 191 | 217 | 165 | 208 | 0.00 |
| 3. Clear cart | 1932 | 2094 | 2222 | 2062 | 0.01 |
| 4. Defer order | 2236 | 2425 | 2379 | 2275 | 0.01 |
| 5. Home | 19,371 | 21,131 | 21,190 | 20,990 | 0.07 |
| 6. Inventory | 10,034 | 10,703 | 10,656 | 10,932 | 0.04 |
| 7. Login | 19,890 | 21,128 | 21,190 | 20,997 | 0.07 |
| 8. Logout | 19,372 | 21,128 | 21,190 | 20,997 | 0.07 |
| 9. Purchase cart | 2682 | 2806 | 2919 | 2840 | 0.01 |
| 10. Remove | 923 | 711 | 713 | 692 | 0.00 |
| 11. Sell inventory | 21,949 | 23,867 | 23,552 | 23,807 | 0.08 |
| 12. Shopping cart | 2855 | 2808 | 2939 | 2755 | 0.01 |
| 13. View items | 139,370 | 146,637 | 146,903 | 148,698 | 0.49 |
| 14. View items quantity | 20,625 | 22,425 | 22,472 | 21,930 | 0.07 |
Fig. 14800U-50B/25P/25M: CPU utilization statistics. a Violin plots. b Summary statistics
Fig. 15800U-50B/25P/25M: Server-side response time statistics
Fig. 16800U-50B/25P/25M: Memory usage statistics (with Faban initialization). a Usage over time. b Summary statistics
Fig. 171200U_50B_25P_25M: CPU utilization statistics. a Violin plots. b Summary statistics
Fig. 181200U-50B/25P/25M: Server-side response time statistics
Fig. 191200U-34B/33P/33M: Session length statistics. a Violin plot. b Summary statistics. c Violin plot. d Summary statistics
Fig. 201200U-34B/33P/33M: Request count statistics. Relative counts (common to JMeter, Faban and PCM)
Fig. 211200U-34B/33P/33M: CPU utilization statistics. a Violin plots. b Summary statistics
800U-0B/100MP/0M: Request count statistics (JMeter)
|
|
|
|
| ||||
|---|---|---|---|---|---|---|---|
| 1 | Add to cart | 38,596 | 0.162 | 38,720 | 0.162 | 57,762 | 0.219 |
| 2 | Clear cart | 1188 | 0.005 | 1224 | 0.005 | 946 | 0.004 |
| 3 | Defer order | 8571 | 0.036 | 8582 | 0.036 | 9682 | 0.037 |
| 4 | Home | 30,079 | 0.126 | 30,251 | 0.126 | 30,048 | 0.114 |
| 5 | Login | 30,079 | 0.126 | 30,251 | 0.126 | 30,048 | 0.114 |
| 6 | Logout | 30,079 | 0.126 | 30,251 | 0.126 | 30,048 | 0.114 |
| 7 | Purchase cart | 21,508 | 0.090 | 22,137 | 0.092 | 20,212 | 0.077 |
| 8 | Remove | 155 | 0.001 | 168 | 0.001 | 122 | 0.000 |
| 9 | Shopping cart | 21,923 | 0.092 | 21,669 | 0.090 | 17,064 | 0.065 |
| 10 | View items quantity | 56,191 | 0.236 | 56,328 | 0.235 | 68,629 | 0.260 |
Fig. 22800U-0B/100MP/0M: Session length statistics for withGAA compared to withoutGAA. a Violin plots for session lengths. b Summary statistics of session lengths
Fig. 23800U-0B/100MP/0M: CPU utilization statistics. a Violin plots. b Summary statistics
Fig. 24800U-0B/100MP/0M: Server-side response time statistics