lotus icon indicating copy to clipboard operation
lotus copied to clipboard

Monitor Base Migration Performance Over Time

Open rjan90 opened this issue 5 months ago • 3 comments

Summary

This issue tracks the performance of "base migration" (i.e., migration with no additional logic other than changing CodeCIDs) over time. The purpose is to monitor the impact of increasing actor growth on base migration times and identify potential performance issues as the network grows.

Motivation

The number of actors in the state tree increases. This growth can potentially impact the performance of state migrations, even for the simplest case of base migration. By regularly monitoring the base migration performance, we can:

  1. Track the impact of actor growth on migration times
  2. Identify trends and potential performance bottlenecks
  3. Inform decisions on optimization efforts for state migrations

User/Customer

  • Node operators
  • Protocol developers

Tracking Process

We will use our existing processes and documentation for when to run these benchmarks:

  1. Timing: Benchmarks are run after each network skeleton has been created, as part of the burndown list for a network upgrade.
  2. Methodology: The benchmarking process follows the steps outlined in our documentation, with two distinct modes: a. Offline Mode: Measure the base migration performance in isolation. b. Online Mode: Measure the migration while the node is syncing to capture the impact of real-world conditions.

Notes

This issue is related to the ongoing discussions and findings in the following issues:

Example Benchmark

Suggested results comment template that can copy/paste

Meta

  • Date: [Insert date]
  • Skeleton Version: [Insert version]
  • Network: [calibration|mainnet]
  • Actor Count: [Insert total actor count]

Hardware Specifications on the machine you are running the benchmark:

Main component for the baseline migration should be disk read speed, but we are recording the other specs as well.

  • CPU: [Insert CPU model and number of cores/threads]
  • RAM: [Insert total RAM]
  • Disk: [Insert disk type (SSD/NVMe) and capacity]

Benchmark

Offline Mode

  • Migration Times:
    • Without pre-migration/cache: [Insert time]
    • With pre-migration/cache: [Insert time]
  • Peak Memory Usage: [Insert peak memory usage]
  • Avg CPU Utilization: [Insert average CPU utilization]

Online Mode

  • Migration Time: [Insert time]
  • Peak Memory Usage: [Insert peak memory usage]
  • Avg CPU Utilization: [Insert average CPU utilization]

rjan90 avatar Sep 04 '24 09:09 rjan90