...
This is performance review for YC version 3.0.0 of e-commerce platform based on demo store, which is shipped with the code base.
...
The test is split into several levels through number of concurrent users allowed in the test (Concurrent users = number users using the site at the same time). There are four levels: 100, 500, 1000 and 2000. Each of these levels represents size of the online store.
Sample | Browsing users | Checkout users | Benchmark |
---|---|---|---|
100 | 90 | 10 ordering | a popular boutique |
500 | 450 | 50 ordering | a busy retailer with vast range of brands |
1000 | 900 | 100 ordering | nationwide well established superstores |
2000 | 1800 | 200 ordering | multinational enterprise level companies |
All tests are performed using a single storefront node, which is the simplest, cheapest (in terms of hardware) and most straightforward installation (fully functional store in 3h from blank operating system). The reason for this is that we wanted to show the potential of the system which allows fantastic level of throughput using minimal resources. Of course clustered environments will enjoy even better performance levels, however require more resource intensive infrastructure setup.
...
Results outlined in this performance test report prove that even with a single node YC enode e-commerce platform is able to satisfy even large scale projects.
...
The following hardware and software was used during performance testing:
Resource | Version/Spec | Notes |
---|---|---|
Processor | Intel Xeon E3-1230 3200MHz/L3-8192Kb/DMI s1155 | |
RAM | 16GB DDR3 PC3-10600 1333MHz ECC (-Xms1024m -Xmx4096m) | Java memory allocation: -Xms1024m -Xmx4096m |
HDD | 2x WD VelociRaptor WD1500ADFD 150Gb, RAID1 | |
Java SDK | OpenJDK 1.8.x | |
Tomcat | v.7.x.x | 1 instance, standalone non-native |
Apache HTTP | ||
RDBMS | MySQL v 5.5 | same machine typical non-tuned installation |
Platform | 3.0.0 | basic single Demo store + YUM installation, file system based full text index |
Test results
...
3.x.x single node
Each test had run approximately 45min to ensure cache evictions and garbage collections are taken into account.
It is clear from figures below that order processing throughput per hour remained at a high level of 87,000 orders per hour for 100 users declining to 48,000 order per hour for 2,000 users. This metric proves YC is the platform is capable of handling load even for large nationwide popular stores during peak sales (~3,000 o/h).
Looking at the page per hour figures we exhibit that YC the platform is more than capable to handle the browsing users as well. With 330,000 pages per hour for 100 users, simply because there is not enough users to get greater throughput, and 400,000+ pages per hour for 500 and 1,000 users, slightly declining to 330,000 for 2,000 users - it is clear that even large nationwide popular stores during peak sales (400,000 p/h) will enjoy great performance.
Figures suggest that even with heaviest load (2,000 users) full browsing, registration and checkout process with three items in the cart will take no more than 73 seconds.
Metric | 100 | 500 | 1000 | 2000 |
---|---|---|---|---|
CPU consumption | 30-50% | 40-70% | 50-80% | 50-80% |
Memory consumption | 500MB - 1GB | 1GB - 3GB | 1GB - 3.6GB | 1.5GB - 4GB |
RDBMS connection pool | 2000 | 2000 | 2000 | 2000 |
Throughput pages per hour (000's) | 330K | 425K | 404K | 330K |
Number of pages browsed | 85,500 | 213,000 | 205,000 | 205,000 |
Number of orders created | 500 | 1,250 | 1,200 | 1,200 |
Order processing throughput per hour (000's) | ~87K | ~49K | ~48K | ~48K |
End to end order processing time for three items and full registration | ~3,521ms | ~25,665ms | ~53,063ms | ~73,060ms |
Checkout only order processing time for three items and full registration | ~1,610ms | ~14,172ms | ~32,381ms | ~49,648ms |
Product List/ Search ART | ~572ms | ~2,200ms | ~3,600ms | ~5,511ms |
Product Details ART | ~525ms | ~1,787ms | ~3,600ms | ~5,586ms |
Add to cart ART | ~206ms | ~1,193ms | ~2,265ms | ~3,066ms |
Cart ART | ~33ms | ~861ms | ~2,317ms | ~3,690ms |
Checkout step 1 (registration) ART | ~147ms | ~2,309ms | ~4,359ms | ~7,442ms |
Checkout step 2 (address) ART | ~93ms | ~2,354ms | ~5,627ms | ~8,191ms |
Checkout step 3 (shipping) ART | ~62ms | ~2,054ms | ~4,825ms | ~8,540ms |
Checkout step 4 (payment) ART | ~1,157ms | ~3,943ms | ~7,906ms | ~12,060ms |
My Account ART | ~44ms | ~842ms | ~1,750ms | ~3,500ms |
ART - Average response time
...