These test scenarios are more proper version of performance benchmark than the one that was performed by MageCore Inc.
You can find original test scenarios at the following repository with the links to original research: https://github.com/magecorelab/magento-load-test
This reposistory contains only simulations and data source for load tests, not actual Magento instances.
- OS: Ubuntu 12.04.5 LTS
- Web server: nginx/1.9.7
- PHP: 7.0.6 (over FPM)
- Varnish: 4.0.3
- Redis: 2.8.9
- Database: Percona Server 5.6.22-71.0-log
- RAM: 16GB
- CPU: 8
InnoDB configurations:
[mysqld]
innodb_buffer_pool_size = 8G
PHP Op Cache configurations:
[opcache]
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=32531
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
opcache.max_wasted_percentage=30
- Clone repository with Magento 1.x setup bootstrap into your Hypernode:
git clone https://github.com/IvanChepurnyi/load-test-magento1-bootstrap.git ./magento1
- Install Magento 1.9.2.4 via
setup.sh
script
magento1/setup.sh database_name magento-domain-name.com [database-type] [version]
database-type
is a type of database (large, original). Optional. By default it will use one with more configurables.version
Magento 1.x version number. Optional. By default it will use1.9.2.4
.
- Clone repository with Magento 2.x setup bootstrap into your Hypernode:
git clone https://github.com/IvanChepurnyi/load-test-magento2-bootstrap.git ./magento2
- Install desired version of Magento 2.x via
setup.sh
script
magento2/setup.sh database_name magento-domain-name.com [version] [database-type]
database-type
is a type of database (large, original). Optional. By default it will use one with more configurables.version
Magento 2.x version number. Optional. By default it will uselatest
(currently 2.1.0).
- Copy contents from
gatling
directory in this repository into your gatlinguser-files
directory
cp -r ./gatling/* [path-to-gatling]/user-files/
- Pre-warm image cache for each of your instances under test:
# Warming up image cache with 10 concurrent users
JAVA_OPTS="-Ddomain=magento-domain-name.com -Dusers=10"
gatling -s base.defaultFrontTest
- Run load test sessions with the following commands:
cd [path-to-gatling]/
# Magento 1 Default Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -Dusers=10"
gatling -s m1.defaultFrontTest
# Magento 1 Large Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DsimpleProductCsv=product_simple_large -Dusers=10"
gatling -s m1.defaultFrontTest
# Magento 1 Original Oro Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DsimpleProductCsv=product_simple_large -Dusers=10"
gatling -s m1.defaultFrontTest
# Magento 2.0.7 Default Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DmagentoVersion=2.0.7 -Dusers=10"
gatling -s m2.defaultFrontTest
# Magento 2.0.7 Large Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DmagentoVersion=2.0.7 -DsimpleProductCsv=product_simple_large -Dusers=10"
gatling -s m2.defaultFrontTest
# Magento 2.0.7 Original Oro Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DmagentoVersion=2.0.7 -DsimpleProductCsv=product_simple_large -Dusers=10"
gatling -s m2.defaultFrontTest
# Magento 2.1.0 Default Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DmagentoVersion=2.1.0 -Dusers=10"
gatling -s m2.defaultFrontTest
# Magento 2.1.0 Large Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DmagentoVersion=2.1.0 -DsimpleProductCsv=product_simple_large -Dusers=10"
gatling -s m2.defaultFrontTest
# Magento 2.1.0 Original Oro Database
JAVA_OPTS="-Ddomain=magento-domain-name.com -DmagentoVersion=2.1.0 -DsimpleProductCsv=product_simple_large -Dusers=10"
gatling -s m2.defaultFrontTest
Option | Description | Default Value |
---|---|---|
dataDir | Data directory used in test scenarios | mXce |
users | The number of concurrent users | 20 |
ramp | Increase load to number of users in, sec | 30 |
during | Run test during period, minutes | 10 |
domain | Testing domain name | magento.test.com |
useSecure | Use HTTPS for secure pages | 0 |
simpleProductCsv | CSV File name (without suffix) | simple_product |
Option | Description | Default Value |
---|---|---|
magentoVersion | Magento 2.x Version under test | latest |