Can the KM8 server be installed on a cloud hosted server such as Amazon EC2 or Microsoft Azure?
How does it perform?
KM8: All versions
Yes is the simple answer. You always need to be aware of performance differences and ensure that your network connectivity will yield satisfactory results.
We have put together some test results to assist in decision making. The test environment is documented so you may equate it to your own environment, but remember that internet performance is variable. In these tests we made no special effort to lower contention on the network - it was just a normal work day.
These tests are for importing a system from a locksmith as this represents the most intense activity that would happen. The performance of the server and workstation are of no significance in this test (they are included for completeness only) as the entire time is in data transfer and network latency.
Two systems were used in the tests (Test case 1 & 2). On case 2 the third part of the test was an import after ordering 1000 additional key issues.
For comparison, the same tests are included with KM7.
Amazon EC2 T3.small instance hosted in Sydney.
Desktop PC, i7 CPU in New Zealand (2160 km from the server)
Inhouse: 1GB LAN
Internet: 200 Mbps
VPN from workstation to Amazon EC2 server
Ping time from workstation to server via VPN: 29ms (Average over 30 pings)
Test | KM8 | KM7 | Time saving vs KM7 |
---|---|---|---|
Import system | 11s | 33s | 67% |
Reimport system without changes | 2s | 26s | 92% |
Test | KM8 | KM7 | Time saving vs KM7 |
---|---|---|---|
Import system | 3m46s | 13m33s | 72% |
Reimport system without changes | 3s | 9m30s | 99% |
Import system after ordering 1000 key issues | 59s | 11m16s | 91% |
The KM7 test results are for comparison only, KM7 was not designed for high latency networks.
The KM8 "Import system" result of 3 minutes 46 seconds is the time insert 7000 rows over the high latency network.
The 7000 rows inserted consists of 1000 keys, 1000 doors, 1000 doors sides, 2000 keyings and 2000 key issues.
The KM8 "Reimport system without changes" result of 3 seconds is interesting. This is the time required fetch 5000 rows of data from the database and analyse the import file for any changes.
The 5000 rows fetched consists of 1000 keys, 1000 doors, 1000 doors sides and 2000 keyings.
The KM8 "Import system after ordering 1000 key issues" is significantly larger that any normal system update will be. For each of 1000 keys, an additional key issue was ordered. This resulted in 1000 rows altered and 1000 roes inserted.
The 2000 rows affected consists of 1000 keys altered and 1000 key issues inserted.
The import time, whether for a new system of a system update is linear with the number of items contained in the import file.
The 1000 new key issue example is somewhat larger than a normal update from a key order, but we can use the results to determine the expected time for smaller updates.
For example, if there was a change where 100 keys each had an additional issue ordered then the time could be calculated:
Initial data fetch = 3 seconds
Time for 2000 writes = (59 - 3) / 2000 = 0.028 seconds per write
100 keys with one new issue each = 200 writes = (200 * 0.028) + 3 = 8.6 seconds
Another example, if there was a change where only 1 key had an additional 100 issues ordered then the time could be calculated:
Initial data fetch = 3 seconds
Time for 2000 writes = (59 - 3) / 2000 = 0.028 seconds
1 key with 100 new issues = 101 writes = (101 * 0.028) + 3 = 5.8 seconds