Skip to content

getdeps: raise cachelib and fbthrift job weight to 3072 MiB - #492

Closed
michel-slm wants to merge 1 commit into
facebook:mainfrom
michel-slm:getdeps-job-weights
Closed

michel-slm wants to merge 1 commit into
facebook:mainfrom
michel-slm:getdeps-job-weights

Conversation

@michel-slm

Copy link
Copy Markdown
Contributor

job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

percentile peak RSS
p50 489 MiB
p90 1321 MiB
p95 1626 MiB
p99 2580 MiB
max 4027 MiB

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to #488/#490/#491, measured on the same host; manifest-only change.

🤖 Generated with Claude Code

job_weight_mib is the per-compiler memory estimate getdeps divides
available RAM by to pick the build concurrency, and the base of the
RLIMIT_AS safety net it puts on each build process. cachelib and
fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two
seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four
jobs and once at two jobs with tests disabled; 1182 compiler processes
were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The
heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's
ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB),
ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already
declare and keeps a builder sized for N jobs from over-committing when
several of the heavy units land together, which on a machine whose
scratch dir sits on a tmpfs was enough to push it into swap. The weight
is a typical-case budget rather than a ceiling, so the remaining 4 GiB
outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds
the same sources and moves with fbthrift.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Michel Lind <salimma@fedoraproject.org>
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 16, 2026
@meta-codesync

meta-codesync Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

@michel-slm has imported this pull request. If you are a Meta employee, you can view this in D120414253.

meta-codesync Bot pushed a commit to facebook/BGP that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
@meta-codesync meta-codesync Bot closed this in d90eb7c Sep 17, 2026
meta-codesync Bot pushed a commit to facebook/wangle that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/fbthrift that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/fb303 that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
@meta-codesync meta-codesync Bot added the Merged label Sep 17, 2026
@meta-codesync

meta-codesync Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

@michel-slm merged this pull request in d90eb7c.

meta-codesync Bot pushed a commit to facebook/folly that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/watchman that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/proxygen that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/openr that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/fboss that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebookincubator/hsthrift that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebookexperimental/moxygen that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebookincubator/fizz that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebookincubator/katran that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebookexperimental/rust-shed that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/hhvm that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/rebalancer that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/sapling that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebook/mvfst that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
meta-codesync Bot pushed a commit to facebookexperimental/edencommon that referenced this pull request Sep 17, 2026
Summary:
job_weight_mib is the per-compiler memory estimate getdeps divides available RAM by to pick the build concurrency, and the base of the RLIMIT_AS safety net it puts on each build process. cachelib and fbthrift declared 2048 MiB, which two measured builds show is low.

Peak resident memory of every cc1plus process was sampled every two seconds during full builds on Fedora 44 (aarch64, gcc 15), once at four jobs and once at two jobs with tests disabled; 1182 compiler processes were observed across the fbthrift and cachelib phases of the second run:

| percentile | peak RSS |
|------------|----------|
| p50        | 489 MiB  |
| p90        | 1321 MiB |
| p95        | 1626 MiB |
| p99        | 2580 MiB |
| max        | 4027 MiB |

24 translation units exceeded 2048 MiB and 4 exceeded 3072 MiB. The heaviest were cachebench's Stressor.cpp (4.0 GiB) and fbthrift's ThriftServer.cpp (3.8 GiB), ThriftQuicServer.cpp (3.1 GiB), ThriftRocketServerHandler.cpp and Cpp2Connection.cpp (2.8 GiB each).

3072 MiB matches what proxygen, fboss, openr, bgp and moxygen already declare and keeps a builder sized for N jobs from over-committing when several of the heavy units land together, which on a machine whose scratch dir sits on a tmpfs was enough to push it into swap. The weight is a typical-case budget rather than a ceiling, so the remaining 4 GiB outliers are left to the 10x RLIMIT_AS margin. fbthrift-python builds the same sources and moves with fbthrift.

Follow-up to facebook/CacheLib#488, measured on the same host; manifest-only change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

X-link: facebook/CacheLib#492

Reviewed By: likewhatevs

Differential Revision: D120414253

Pulled By: michel-slm

fbshipit-source-id: f93eab02ecb3d3aa6a5b4e1a45a31cd7b376c366
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant