Safeguard
Supply Chain•

How do you scale test an SCA tool before buying for a large org?

Scale test an SCA tool on a deliberately uneven sample of your own repos. Measure time, failures, memory and API limits, and judge it on the worst cases.

Safeguard Security Team
4 min read

Scale test an SCA tool by scanning a deliberately uneven sample of your own repositories, including your largest monorepo, and recording wall clock time, failures, memory and API calls for each. Judge the tool on the slowest and ugliest repos, not the average one.

Why vendor benchmarks do not transfer

A demo repository has a clean lockfile and a few hundred packages. Your estate has a decade of manifests, generated code, vendored folders and one repository nobody dares to clone. Scale problems show up in the tail, so your test set should be weighted toward the tail.

Build the sample

Pick 20 to 40 repositories. Include:

  • Your largest monorepo by file count.
  • The repo with the most lockfiles.
  • A repo with a private registry dependency.
  • A legacy repo with no lockfile at all.
  • A few typical services in each language you run.
  • A repo with a huge transitive tree.

Write down what you expect before you run anything. Surprises are the point.

What to measure

MetricHowWhy it matters
Wall clock per repoTimestamps from trigger to results availablePull request feedback must fit your CI budget
Failure rateCount scans that error, time out or return partial resultsSilent partial results are worse than failures
Peak memory and CPURunner metricsSizing and cost of the runners
Source control API callsRequest counts and rate limit headersLarge estates hit limits
Result completenessCompare dependency counts to a known lockfileProves coverage

The API limit check

If the tool pulls from GitHub, remember the limits. GitHub documents 5,000 requests per hour for authenticated users, higher for some Enterprise Cloud apps, and secondary limits such as 100 concurrent requests and 80 content generating requests per minute. It also notes the response headers, such as x-ratelimit-remaining, are authoritative. Ask the vendor how the tool backs off and whether it reads those headers. Then watch the counters yourself during the test.

Run it three ways

  1. Cold start. First scan of everything. Measures onboarding.
  2. Warm rerun. Same commit again. Should be much faster if caching works.
  3. Burst. Trigger 30 scans at once, as a Monday morning merge wave would. Look for queueing and failures.

Read the results honestly

Report the 50th, 90th and worst times, not only the mean. Record every failure with its cause. A tool that finishes 38 of 40 repos and tells you clearly which two failed and why is more usable than one that finishes 40 with two quietly incomplete.

Write the outcome in a one page summary your procurement and platform teams can both read. Related: How to shard scans of a large monorepo.

Try it yourself

Click through it at your own pace, or open it full screen.

Note how the inventory reports counts per project. That is the number to compare against your own lockfiles.

Safeguard offers dependency scanning with a free scan at gold.safeguard.sh/scan if you want a quick first data point.

Quick check

How many repositories should a scale test include?

Twenty to forty, chosen to include your worst cases, is enough to expose most problems.

What is the most important number to record?

The failure and partial result count. Speed means little if results are incomplete.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.