Nix.settings.cores does not work

Hi,

I have an AMD Ryzen 7800X3D, but I don’t want to use all cores to compile the process. I have set up nix.settings.cores = 12 and It uses full cores and threads instead 12.

  Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          48 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   16
  On-line CPU(s) list:    0-15
Vendor ID:                AuthenticAMD
  Model name:             AMD Ryzen 7 7800X3D 8-Core Processor
    CPU family:           25
    Model:                97
    Thread(s) per core:   2
    Core(s) per socket:   8
    Socket(s):            1
    Stepping:             2
    Frequency boost:      enabled
    CPU(s) scaling MHz:   95%
    CPU max MHz:          5050,0000
    CPU min MHz:          545,0000
    BogoMIPS:             8399,98

https://nix.dev/manual/nix/2.24/advanced-topics/cores-vs-jobs

cores = 12
max-jobs = 2 

Could be fine @waffle8946 ?

Then you will get cores * max-jobs = 24 parallel processes at most.
I would recommend either:

  • cores = 12 + max-jobs = 1
  • cores = 6 + max-jobs = 2

Depending on whether you usually build more than one package at a time or not.

2 Likes