oom_adj[118545] является устаревшим и предоставляется только для целей наследия. Внутри Linux используется [118546]oom_score_adj[118547], который имеет больший диапазон: [118548]oom_adj[118549] увеличивается до 15, в то время как [118550]oom_score_adj[118551] увеличивается до 1000.
Всякий раз, когда вы пишете на [118552]oom_adj[118553] (допустим, 9), ядро делает так:
и сохраняет это на [118554]oom_score_adj[118555]. [118556]OOM_SCORE_ADJ_MAX[118557] равно 1000 и [118558]OOM_DISABLE[118559] равно -17.
Так что за 9 вы получите [118560]oom_adj=(9 * 1000) / 17 ~= 529. 411[118561] и так как эти значения являются целыми числами, [118562]oom_score_adj[118563] будет содержать 529.
Теперь при чтении [118564]oom_adj[118565] ядро сделает так:
Так что за 529 получится: [118566]oom_adj = (529 * 17) / 1000 = 8.993[118567] и так как ядро использует целые числа и целочисленную арифметику, то это станет 8.
netsh interface ipv6 show address level=verbose
Так что там... вы пишете 9 и получаете 8 из-за арифметики с фиксированной точкой/целым числом.[118175].
Эти два варианта могут быть использованы для ограничения количества ядер процессора, доступных для группы cgroup:
cpu.cfs_period_us
cpu.cfs_quota_us
cfs_period_us
определяет, как часто это должно выполняться cfs_quota_us
определяет, сколько us
должно быть получено сгруппой в течение каждого периода. Таким образом, если указать cfs_quota_us
как N умноженное на количество cfs_period_us
, то cgroup получит N ядер.