Как использовать oom_score_adj?

Я не думаю, что вы сказали, используете ли вы гигабитный сетевой адаптер, я предполагаю, что с тех пор у вас есть 2 сетевых адаптера и, следовательно, вероятно, это игровая материнская плата.

Так как это так, если вы пытаетесь получить базу 2x100, вам лучше купить дешевый 4-8-портовый гигабитный коммутатор и подключить его к вашему интернет-маршрутизатору. Затем вы можете подключить все компьютеры, которые запускают Ethernet, в этот коммутатор, и у вас все еще есть Wi-Fi и Интернет на всех ваших компьютерах.

Я делаю это сейчас, потому что я купил Netgear WNDR3400 и поместил на него DD-WRT, чтобы у меня было несколько приятных опций, включая очень современный сервер NAS.

[d3 ] Единственная проблема заключалась в том, что маршрутизатор был 100 базовым для портов Ethernet. Так что за 40 долларов я купил 5-портовый Gigabit коммутатор, подключенный к маршрутизатору, затем подключил все компьютеры к коммутатору Gigabit и подключил игровые консоли к маршрутизатору.

Все работает отлично, и я могу передавать файлы между компьютерами с молниеносной скоростью.

Хорошо, удачи!

18
задан 9 September 2011 в 17:40

36 ответов

Взгляд в код всегда хорошая идея. Обычно я использую функцию поиска kernel.org, но в настоящее время она недоступна. Гитуб тоже хорошо справляется. Я нашел это:

Вместо этого добавляется новый настраиваемый, / proc / pid / oom_score_adj, который варьируется от -1000 до +1000. Его можно использовать для поляризации эвристики, так что некоторые задачи никогда не рассматриваются для уничтожения oom, в то время как другие могут всегда считаться. Значение добавляется непосредственно в балл badness (), поэтому значение -500, например, означает скидку 50% потребления памяти по сравнению с другими задачами либо в системе, связанными с mempolicy, в cpuset, либо используя один и тот же контроллер памяти.

Из https://github.com/mirrors/linux-2.6/commit/a63d83f427fbce97a6cea0db2e64b0eb8435cd10#include/linux/oom.h

4
ответ дан 7 August 2018 в 20:54
  • 1
    Спасибо за указатель, но я надеюсь, что кто-то прогонит и запишет рецепт всей проблемы, который, похоже, будет устанавливать для этого значения для демона exec pbs перед тем, как он развозит любые задания. – bmargulies 9 September 2011 в 18:29

Если вы установили высокое (ish) значение для oom_adj или oom_score_adj, тогда они будут убиты первыми. например,

echo 15 > /proc/[pid]/oom_adj

oom_adj идет от -16 до 15, и, как упоминалось выше, oom_score_adj принимает от -1000 до 1000

5
ответ дан 7 August 2018 в 20:54
  • 1
    Для этого вам нужно быть root. [F1] – Adil 9 July 2014 в 13:52
  • 2
    На самом деле вы можете увеличить оценку для ваших процессов без корня («да, это может быть убито»). Уменьшение (ниже 0) требует root. – Piskvor 27 January 2017 в 15:13

Если вы можете изменить стартовый скрипт, создающий процесс, который вы хотите установить приоритет для oom-killer, добавьте следующее к стартовому скрипту:

echo 1000 > /proc/self/oom_score_adj

Значение наследуется для дочерних процессов. [ ! d1]

5
ответ дан 7 August 2018 в 20:54

Взгляд в код всегда хорошая идея. Обычно я использую функцию поиска kernel.org, но в настоящее время она недоступна. Гитуб тоже хорошо справляется. Я нашел это:

Вместо этого добавляется новый настраиваемый, / proc / pid / oom_score_adj, который варьируется от -1000 до +1000. Его можно использовать для поляризации эвристики, так что некоторые задачи никогда не рассматриваются для уничтожения oom, в то время как другие могут всегда считаться. Значение добавляется непосредственно в балл badness (), поэтому значение -500, например, означает скидку 50% потребления памяти по сравнению с другими задачами либо в системе, связанными с mempolicy, в cpuset, либо используя один и тот же контроллер памяти.

Из https://github.com/mirrors/linux-2.6/commit/a63d83f427fbce97a6cea0db2e64b0eb8435cd10#include/linux/oom.h

4
ответ дан 10 August 2018 в 09:16
  • 1
    Спасибо за указатель, но я надеюсь, что кто-то прогонит и запишет рецепт всей проблемы, который, похоже, будет устанавливать для этого значения для демона exec pbs перед тем, как он развозит любые задания. – bmargulies 9 September 2011 в 18:29

Если вы установили высокое (ish) значение для oom_adj или oom_score_adj, тогда они будут убиты первыми. например,

echo 15 > /proc/[pid]/oom_adj

oom_adj идет от -16 до 15, и, как упоминалось выше, oom_score_adj принимает от -1000 до 1000

5
ответ дан 10 August 2018 в 09:16
  • 1
    Для этого вам нужно быть root. [F1] – Adil 9 July 2014 в 13:52
  • 2
    На самом деле вы можете увеличить оценку для ваших процессов без корня («да, это может быть убито»). Уменьшение (ниже 0) требует root. – Piskvor 27 January 2017 в 15:13

Если вы можете изменить стартовый скрипт, создающий процесс, который вы хотите установить приоритет для oom-killer, добавьте следующее к стартовому скрипту:

echo 1000 > /proc/self/oom_score_adj

Значение наследуется для дочерних процессов. [ ! d1]

5
ответ дан 10 August 2018 в 09:16

Другие вопросы по тегам:

Похожие вопросы: