-
Notifications
You must be signed in to change notification settings - Fork 70
Early API Node testing for Leap 5.0.0
Thank you for contributing to Leap Testing to ensure quality and a smooth rollout process. Leap v5.0.0 is packed with features, so we are taking several passes at testing to reduce the risks that such a large release creates.
For this round of testing our goal is to test read only transactions. Since read only transactions are not relevant to block producer nodes, we can test on API nodes.
We'll be testing the following features:
- Read-only Transactions
- EOS VM OC
- Reduced Chainbase Size
- Prometheus Metrics
- Libary Upgrades (Boost, C++)
- P2P improvements ?? (need to check: sync, connections)
By exercising these features via the following test plan, we hope to confirm the following expectations:
- nodeos is stable (no crashes)
- nodeos has lower overall cpu utilization
- nodeos has smaller resident memory size
- nodeos has smaller chainbase size
- nodeos handles high quantity of simultaneous read only transactions
- OS: ubunutu 22.04
-
Copy the following Test Report Template:
- pre-5.0.0 version
- release version:
- baseline
- resident memory size:
- chainbase size:
- nodeos cpu utilization:
- Wharfkit & Wharf test suite
- resident memory size:
- chainbase size:
- nodeos cpu utilization:
- Early Testing Version
- tag name:
API-test-v5.0-3534201ba
- baseline
- resident memory size:
- chainbase size:
- nodeos cpu utilization:
- Any crashes?
- Wharfkit & Wharf test suite
- resident memory size:
- chainbase size:
- nodeos cpu utilization
- Any crashes?
- during low read-only thread count test
- nodeos cpu utilization:
- Any crashes?
- during high read-only thread count test
- nodeos cpu utilization
- Any crashes?
- tag name:
- pre-5.0.0 version
-
Pre-5.0.0 version
With an API node with a pre-5.0.0 version:
-
Document the Baseline Scenario
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
Run the Wharfkit & Wharf test suite
- Run WharfKit + Wharf Antelope Core tests
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
-
Early Testing Version
With an API node running an Early Testing Version of Leap v5.0.0:
-
Document the Baseline Scenario
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
Run the Wharfkit & Wharf test suite
- Run WharfKit + Wharf Antelope Core tests
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
Low read-only thread counts
- set
read-only-threads = 64
- Spam network with read-only transactions (get-block, get-info)
- Ascertain CPU utilization
- Document in your Test Report
- set
-
High read-only thread counts
- set
read-only-threads = 256
- Spam network with read-only transactions (get-block, get-info)
- Ascertain CPU utilization
- Document in your Test Report
- set
-
Custom read-only contracts
- Deploy custom read-only contract (example)
- Spam network with transactions containing your custom read-only actions
- Ascertain CPU utilization
- Document in your Test Report
-
Auto EOS-VM-OC
- set
eos-vm-oc-enable = auto
- Spam network with system contract transactions
- Ascertain CPU utilization
- Document in your Test Report
- set
-
- take a snapshot
- backup your configuration
- build leap from source with tag API-test-v5.0-3534201ba
- install updated software from build
- set
read-only-threads = 128
- set
chain-state-db-size-mb = 34816
- restore from snapshot
- RSS: Resident Memory Size
- VSZ: Virtual Set Size
> ps -o pid,user,vsz,rss,comm,args -p 1831038 1831042 1831045
PID USER VSZ RSS COMMAND COMMAND
1831038 eric 4515168016 36008 nodeos nodeos
1831042 eric 1113320 2360 oc-monitor nodeos
1831045 eric 64744 2360 oc-trampoline nodeos
-
Ensure the following plugins are activated:
- eosio::http_plugin
- eosio::chain_plugin
- eosio::db_size_api_plugin
-
Make a call to
db_size
to find the current utilized space
http://api.example.com:8888/v1/db_size/get