HomeFreeBSD

cache: decrease ncnegfactor to 5

Description

cache: decrease ncnegfactor to 5

The current mechanism is bogus in several ways:

  • the limit is a percentage of total entries added, which means negative

entries get evicted all the time even if there are plenty of resources

  • evicting code is almost not concurrent, which makes it unable to

remove entries fast enough when doing something as simple as -j 104
buildworld

  • there is no support for performing mass removal if necessary

Vast majority of negative entries never get any hits. Only evicting
them when the filesystem demands it results in a significant growth of
the namecache with almost no improvement in the hit ratio.

Sample result about afer 90 minutes of poudriere -j 104:

current    no evict   % of the original

numneg 219737 2013157 916
numneghits 266711906 263544562 98 [1]

[1] this may look funny but there is a certain dose of variation to the
build

The number was chosen as something which mostly eliminates spurious
evictions during lighter workloads but still keeps the total at bay.

Sponsored by: The FreeBSD Foundation

Details

Provenance
mjgAuthored on
Parents
rS352812: cache: stop requeuing negative entries on the hot list
Branches
Unknown
Tags
Unknown