bee icon indicating copy to clipboard operation
bee copied to clipboard

benchmark cmd to check if a machine satisfies min requirements

Open istae opened this issue 2 years ago • 2 comments

A new benchmark cmd could detect if a machine has minimum requirements to run a bee node:

Some checks are:

  • Cpu check: run a common hashing function the bee node uses to compute a hashes/second and check if this fits the minimum requirements
  • Disk check: run a combination of stores and read calls with localstore to check that the disk has good IO performance
  • Mem check: see if the machine has the minimum available memory requirements
  • network check: run some upload and download tests, or measure the ping interval to some known address like a bootnode, to measure latency and network bandwidth

Part of the task is to research different methods of measuring performance and defining good minimum requirements.

istae avatar Apr 04 '23 23:04 istae

RAM usage should be recorded during the sampler.

istae avatar Apr 07 '23 19:04 istae

I have concerns about the reliability of the results that this command would provide. Simulating the workloads can provide false positives because of the complexity of the internal processes of a node. Some examples. CPU benchmark can be unreliable if there are lock contentions in the real workload. Memory estimations can be influenced by other processes in the system and also caching and swap configurations. Disk performance is dependent of the size of the storage dir, fragmentation and also types of the storage that can change performance drastically in time, like ebs iops limits.

If that type of command is created it would create addition maintenance requirement to keep up with changes in the algorithms and optimizations.

I would suggest to estimate requirements on the real usage scenarios based on long running metrics (grafana) and experience with running and testing nodes. For example, memory usage is already visible on go used memory metric, storage type is also known to be ssd, not network attached storage or magnetic disks, any modern cpu should be good enough for funning the node.

janos avatar Oct 18 '23 09:10 janos