Skip to content

ROS Buildfarms Buildtime Performance Analysis #186

@Crola1702

Description

@Crola1702

Description

Buildtime between build.ros2.org and ci.ros2.org have huge differences event though we're theoretically building the same distributions. For example nightly_linux_debug took 2h 24min, while Rci_nightly_debug took 5h 8min, both building Rolling distribution

  • Goal: Identify and document the root causes of buildtime differences on build.ros2.org compared to ci.ros2.org
  • Objective 1: Compare hardware resources (machines), job and build configuration differences between the two farms
  • Objective 2: Quantify time spent in specific build phases (Setup, Build, Test, Packages)

Requirements:

  • If created, an analysis tool must be reusable for future performance monitoring (an upgrade of the current time analysis tool or a creation of a new one)

Considerations:

  • Check ccache status on buildfarms
  • Check parallelism in build and tests between buildfarms

Tasks:

  • 0.0 Problem Statement
  • 1.0 Infrastructure Comparison
    • 1.1 Hardware Comparison
      • 1.1.1 Compare CPU specifications
      • 1.1.2 Compare RAM specifications
      • 1.1.3 Compare Disk I/O speeds
    • 1.2 Build Configuration
      • 1.2.1 Compare Compiler/CMake/Colcon versions
      • 1.2.2 Compare Docker runtime configurations
      • 1.2.3 Compare build and test flags
      • 1.2.4 Compare packages being built
  • 2.0 Buildtime Tool Data Collection
    • 2.1 Log Analysis
      • 2.1.1 Which section is taking more time to run?
      • 2.1.2 Which package of the sections is taking more time to run?
    • 2.2 Comparisons
      • 2.2.1 Compare compilation time in build stage per packages
      • 2.2.2 Compare test time in test stage per packages
      • 2.2.3 Find bottlenecks and differences
  • 3.0 Investigation closure
    • 3.1 Draft investigation document (github investigation)
    • 3.2 Formulate recommendations
    • 3.3 Present finding to Infra and ROS PMC

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions