0% found this document useful (0 votes)
18 views20 pages

bagisto_performance

The Bagisto Performance Benchmarking Report v2.0.0 evaluates the performance of the Bagisto eCommerce framework with 1 million products and up to 500 concurrent users. The benchmarking scenarios include user sign-up, login, adding products to the cart, and browsing home and category pages, all showing a 0% error rate. The report details server specifications, testing methods using Apache JMeter, and response time graphs for various user activities.

Uploaded by

posghofficial
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views20 pages

bagisto_performance

The Bagisto Performance Benchmarking Report v2.0.0 evaluates the performance of the Bagisto eCommerce framework with 1 million products and up to 500 concurrent users. The benchmarking scenarios include user sign-up, login, adding products to the cart, and browsing home and category pages, all showing a 0% error rate. The report details server specifications, testing methods using Apache JMeter, and response time graphs for various user activities.

Uploaded by

posghofficial
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Performance

Benchmarking Report
v2.0.0

A Product of Webkul Software


Preface _

Bagisto is an eCommerce ecosystem designed for all to build and scale your business. It's a

free and open-source eCommerce framework that offers you a wide range of functionality

and lets you have total control of your store. Built on top of Laravel stack, it is coupled with

easy product information management and fast time to market the product. Besides, the

frame work is very flexible and easy to use even for non-tech sawies.

The purpose of this white paper is to validate the performance Bagisto eCommerce

store with 1 million products against concurrent users upto 500.

Store considered for benchmarking consists of two tier server architecture having

application and database on separate nodes. Beside code structure optimisation, no other

external cache or server side accelerator has been implemented on the server. Server

specifications and nature of products present in the store have been mentioned in the next

section of this report.

 Server has been tuned to handle 100-150 concurrent user connections.

 Apache2 is being used as a web server with mpm prefork

 For database, store is using Mysql database

Multiple iterations of benchmarking have been done mimicing various customer


activities like home page browsing, sign up, sign in, add to cart and accessing

products and categories.


Store Specifications _

Name Value

Operating System Ubuntu 22.04

Database Mysql 8.0.33

Bagisto Version 2.0.0

Application Server RAM/CPU 8 GB RAM/2 vCPU cores

Application Storage space 80 GB

Swap Memory 4 GB

Mysql Server RAM/CPU 8 GB RAM/2 vCPU cores

Mysql Storage Space 30 GB

Apache2/Mysql 300

Connections Limit

Cloud Platform Amazon Web Services

Products

1.3 million SKUs

Through 896,248 configurable products & 424,085


individual simple products.

Categories 101

Customers 500

Number of Admins 01

Categories 101

Products 198k SKUs

Through 198,876 Configurable Products


Bagisto Benchmarking
using Jmeter _

The Apache Jmeter™ application is open-source software, a 100% pure Java

application designed to load test functional behavior and measure performance. It

was originally designed for testing Web Applications but has since expanded to other

test functions.

Benchmarking Scenarios _
Following five scenario have been considered while benchmarking bagisto

ecommerce store :

 User Sign up

 User Login

 Add to Cart

 Home Page

 Products and Categories

Simultaneously, check the home page, signup page, sign in page, add to cart product,

and product & category page.

Customers will add items to their cart, provide their addresses, and select the payment

method.
User Sign up _
In this scenario, multiple users are trying to register themselves on customer sign up page
at the same time. Concurrent user in this case ranges from 50 to 500.

Case Users Ramp-Up Ramp-Up


Hold on
Error% Sign-Up
Step Target Users

1 50 0 0 0 0 50

2 100 0 0 0 0 100

3 250 0 0 0 0 250

4 450 0 0 0 0 450

5 500 0 0 0 0 500

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users
Fail
Pass

Pass - 100%
Response Time Graph _
7000

6000

5000
Percentile value in ms

4000

3000

2000

1000

0
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0

Percentiles

/-140 /customer/register-160 /customer/register-172 /customer/register-172-0 /customer/register-172-1

Fig l: Response Over Time Graph of Sign-up Users

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
User Login _
In this scenario, multiple registered users are attempting to login on customer sign-in page
at the same time. Concurrent users in this case ranges from 50 to 500.

Case Users Ramp-Up Ramp-Up


Hold on
Constant Error%
Step Target Timer(MS)

1 50 0 0 0 0 0.00

2 100 0 0 0 0 0.00

3 250 0 0 0 0 0.00

4 450 0 0 0 0 0.00

5 500 0 0 0 0 0.00

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users
Fail
Pass
Pass - 100%
Response Time Graph _
90000

80000

70000
Percentile value in ms

60000

50000

40000

30000

20000

10000

0
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0

Percentiles

/-383 /customer/login-409 /customer/login-424 /customer/login-424-0 /customer/login-424-1

Fig 2: Response Over Time Graph of Sign-in Users

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
Add Product To Cart _
In this scenario, multiple registered users are attempting to login on customer sign-in page

at the same time. Concurrent users in this case ranges from 50 to 500.

Add to Cart
Ramp-Up
Hold on
Constant
Case Users Ramp-Up Error% Success
Step Target Timer(MS)
(User)

1 50 0 0 0 0 0 0.00

2 100 0 0 0 0 0 0.00

3 300 0 0 0 0 0 0.00

4 400 0 0 0 0 0 0.00

5 500 0 0 0 0 0 0.00

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users

Fail

Pass

Pass - 100%
Response Time Graph _
140000

120000

100000
Percentile value in ms

80000

60000

40000

20000

0
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0

Percentiles

/-28 /api/checkout/cart-100 /api/product/246/up-sell-114 /checkout/cart-117


/-81 /api/checkout/cart-102 /api/product/246/related-111 /checkout/onepage-122
/api/categories-68 /api/checkout/cart-103 /api/products-69 /customer/login-76
/api/categories-86 /api/checkout/cart-110 /api/products-70 /customer/login-80
/api/categories/tree-108 /api/checkout/cart-113 /api/products-71 /customer/login-80-0
/api/categories/tree-109 /api/checkout/cart-121 /api/products-87 /customer/login-80-1
/api/categories/tree-64 /api/checkout/cart-65 /api/products-91
/api/categories/tree-67 /api/checkout/cart-66 /api/products-92

/api/categories/tree-85 /api/checkout/cart-89 /api/product/246/reviews-112

/api/categories/tree-88 /api/checkout/cart-90

Fig 3: Response Over Time Graph of Product Users Cart

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
Home Page Browsing _
In these scenarios, we are benchmarking the home page with multiple concurrent users
ranging from 50 to 500.

Case Users Ramp-Up Ramp-Up


Hold on
Error%
Step Target

1 50 0 0 0 0.00

2 100 0 0 0 0.00

3 300 0 0 0 0.00

4 400 0 0 0 0.00

5 500 0 0 0 0.00

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users
Fail
Pass
Pass - 100%
Response Time Graph _
50000

45000

40000
Percentile value in ms

35000

30000

25000

20000

10000

5000

0
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0

Percentiles

HomePage

Fig 4: Response Over Time Graph of Product Users Cart

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
Product and Category Pages _
Now, we are benchmarking different categories and products with multiple concurrent
users at the same time. Concurrent users accessing the category and product pages range
from 50 to 500.

Ramp-Up
Hold on

Case Users Ramp-Up Error%


Step Target

1 50 0 0 0 0.00

2 100 0 0 0 0.00

3 300 0 0 0 0.00

4 450 0 0 0 0.00

5 500 0 0 0 0.00

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users
Fail
Pass

Pass - 100%
Response Time Graph _
30000

25000
Percentile value in ms

20000

15000

10000

5000

0
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0
Percentiles

HTTP Request

Fig 5: Response Over Time Graph of of Product Category Test

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
Simultaneously, check the home page,
signup page, sign in page, add to cart
product, and product & category page _
In this testing scenario, multiple users are available on an e-commerce site, and the traffic is
distributed among all the web pages - a few of them are on the cart page, a few of them are
on the product page, signup, payment page, etc.

While benchmarking different web pages like - signup page, categories and product page,
add to cart page with multiple concurrent users ranging from 50 to 500, we have found the
following results -

Ramp-Up
Hold on
Constant
Case Users Ramp-Up Error%
Step Target Timer(MS)

1 50 0 0 0 0 0.00

2 100 0 0 0 0 0.00

3 250 0 0 0 0 0.00

4 450 0 0 0 0 0.00

5 500 0 0 0 0 0.00

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users
Fail
Pass

Pass - 100%
Response Time Graph _
140000

120000

100000
Percentile value in ms

80000

60000

40000

20000

0
0.0 10.0 20.0 30.0 40.0 5 0.0 60.0 70.0 80.0 9 0.0 100.0

Percentiles

/-140 /api/product/246/reviews-112 /api/checkout/cart-66 /customer/login-80-1


/-28 /api/products-69 /api/checkout/cart-89 /checkout/onepage-122
/-383 /api/products-70 HomePage
/api/checkout/cart-90
/-81 /api/products-71 /customer/register-160 HTTP Request
/api/categories-68 /api/products-87 /customer/register-172 /api/product/246/reviews-112
/api/categories-86 /api/products-91 /customer/register-172-0 /api/products/246/related-111
/api/categories/tree-108 /api/products-92 /customer/register-172-1 /api/products/246/up-sell-114
/api/categories/tree-109 /checkout/cart-117 /customer/login-409
/api/categories/tree-64 /api/checkout/cart-100 /customer/login-424
/api/categories/tree-67 /api/checkout/cart-102 /customer/login-424-0
/api/categories/tree-85 /api/checkout/cart-103 /customer/login-424-1
/api/categories/tree-88 /api/checkout/cart-110 /customer/login-76
/api/checkout/cart-113 /customer/login-80
/api/checkout/cart-121 /customer/login-80-0
/api/checkout/cart-65

Fig 6: Response Over Time Graph of home page, signup page, sign in page, add to cart product, and
product & category page

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
Add items to their cart, provide their
addresses, and select the payment
method _
In this iteration, multiple users are logging in and adding a product on cart at the same
time provide their addresses, and select the payment method.Concurrent users in this
iteration range from 50 to 500.

Ramp-Up
Hold on
Constant
Case Users Ramp-Up Error%
Step Target Timer(MS)

1 50 0 0 0 0 0.00

2 100 0 0 0 0 0.00

3 300 0 0 0 0 0.00

4 400 0 0 0 0 0.00

5 500 0 0 0 0 0.00

Request Summary _

Fail - 0.00%

Request Summary of
Sign-up Users
Fail
Pass

Pass - 100%
Response Time Graph _
120000

100000
Percentile value in ms

80000

60000

40000

20000

0
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0

Percentiles

/-193 /api/checkout/cart-197 /api/checkout/onepage/ /checkout/onepage/


summary-258 success-261
/-210 /api/checkout/cart-200
/api/core/countries-254 /checkout/onepage/
/-269 /api/checkout/cart-215 success-261-0
/api/core/countries-256
/api/categories-201 /api/checkout/cart-216 /checkout/onepage/
/api/customer/ success-261-1
/api/categories-219 /api/checkout/cart-227 addresses-255
/customer/login-205
/api/categories/ /api/products-202
attributes-230 /api/checkout/cart-229 /customer/login-209
/api/products-203
/api/categories/tree-198 /api/checkout/cart-238 /customer/login-209-0
/api/products-218
/api/categories/tree-199 /api/checkout/cart-243 /customer/login-209-1
/ api/products-220
/nesciunt-ut-aperiam-ut-
/api/categories/tree-214 /api/checkout/cart-248 / api/products-231 vel-et-222
/api/categories/tree-217 /api/checkout/cart-265 /api/product/101358/ /ut-aut-amet-praesentium-
reviews-239 qui-auaerat-22
/api/categories/tree-226 /api/checkout/cart-268 /api/product/101358/
/api/categories/tree-228 /api/checkout/onepage/ related-241
/api/categories/tree-236 address-257 /api/product/101358/up-
sell-242
/api/categories/tree-237 /api/checkout/onepage/
payment-methods-259 /checkout/cart-244
/api/categories/tree-266
/api/checkout/onepage/ /checkout/onepage-249
/api/categories/tree-267 summary-253

Fig 7: Response Over Time Graph of Add items to their cart, provide their addresses, and select the
payment method.

Y-axis: It represents the response time in second or millisecond metrics.

X-axis: It shows the elapsed time. The elapsed time maybe relative time or actual time
as per the graph's setting.
Resource Utilization Graph _

Percent

100

80

60

40

20

0
09/07 09/08 09/09 09/10 09/11 09/12 09/13 09/14 09/15 09/16 09/17 09/18 09/19 09/20

Fig 8: Max CPU Utilization over time

database-1
Count

140

120

100

80

60

40

20

0
09/07 09/08 09/09 09/10 09/11 09/12 09/13 09/14 09/15 09/16 09/17 09/18 09/19 09/20

Fig 9: Max Database Connections over time

Note: I have tested all scenarios on JMeter with ramp-up periods of 25 seconds and 50
seconds, and the results remained consistent across all scenarios
Conclusion _

Observing the response time graphs and resource utilization reports for all the iterations

run during benchmarking, it can be validated that the Bagisto v2.0.0 store can handle 500

concurrent user connections successfully, provided that the server has been configured and

tuned properly.

By analyzing the resource consumption graph, we can conclude that the server

configuration (RAM, CPU cores, disk space, etc) has been properly tuned.

I have conducted tests using Apache JMeter with consistent thread groups and ramp-up

durations (in seconds) across all operations (such as homepage, sign-up, sign-in, add to cart,

product categories, and payment methods, along with combined scenarios).

The server has been configured with a total of 198k products on Bagistov2.0.0,

designed to accommodate various product types including Simple, Virtual,

Downloadable, and Configurable.

A Bagisto v2.0.0 store can deal with the load of 500 concurrent users with aforementioned

server configuration without any external cache or server side optimisation. With fine server

optimization techniques and use of external cache could further enhance the performance.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy