Skip to content

pacquet: pacquet install slower than pnpm install due to syscall contention #11851

Description

@marvinhagemeister

Verify latest release

  • I verified that the issue exists in the latest pnpm release

pnpm version

pacquet: git d130e0f

Which area(s) of pnpm are affected? (leave empty if unsure)

No response

Link to the code that reproduces this issue or a replay of the bug

No response

Reproduction steps

N/A - private repo. Don't know a public one at the top of my head with a few thousand deps.

Describe the Bug

On a large workspace with ~3400 packages in the lockfile:

pacquet install --frozen-lockfile:
  real ~32–34s
  user ~1.5s
  sys  ~155–165s

pnpm install --frozen-lockfile --ignore-scripts:
  real ~27–28s
  user ~9s
  sys  ~56s

Bounded Rayon reduces the syscall contention:

RAYON_NUM_THREADS=4 pacquet install --frozen-lockfile:
  real ~21s
  sys  ~54s

Samply confirms Rayon workers are heavily saturated, and stacks generally bottom out in filesystem calls. Bounding threads is obviously the wrong long-term move, but it confirms the syscall contention cause.

Expected Behavior

pacquet should be faster than js-based pnpm, not slower.

Which Node.js version are you using?

24.16.0

Which operating systems have you used?

  • macOS
  • Windows
  • Linux

If your OS is a Linux based, which one it is? (Include the version if relevant)

No response

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions