LINUX.ORG.RU

Используются 3 ядра из 4.

 , ,


2

2

Судя по htop, одно ядро из 4 постоянно простаивает.

  0  [||                           0.2%]   2  [||||||||||||||||||||||||||||87.9%] 
  1  [||||||||||||||||||||||||||||89.8%]   3  [||||||||||||||||||||||||||||89.0%] 

Сейчас у меня мир пересобирается, -j4 у мэйка, плюс браузер и кеды..так что что-то определённо не то.


телепаты не видят сквозь завесу тьмы, что у тебя за процессор и какие у него настройки

stevejobs ★★★★☆ ()

-j4 у мэйка

А если -j9 выставить?

vurdalak ★★★★★ ()
Ответ на: комментарий от stevejobs

Настройки..процессора?

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Model name:            Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz
Stepping:              7
CPU MHz:               2100.000
CPU max MHz:           2100,0000
CPU min MHz:           800,0000
BogoMIPS:              4190.16
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K

alextk ()

Некоторые пакеты игнорят -j, другие вообще не могут собираться многопоточно. Проверь на сборке ядра

xorik ★★★★★ ()
Последнее исправление: xorik (всего исправлений: 1 )
Ответ на: комментарий от xorik

Это постоянно. Не только при пересборке мира. И на ядре, и..на чём угодно. Ядро 0 постоянно пустует. Уже неделю или две так.

alextk ()
Ответ на: комментарий от stevejobs
    |Nehalem                    || SandyBridge        || Mperf              || Idle_Stats                              
CPU | C3   | C6   | PC3  | PC6  || C7   | PC2  | PC7  || C0   | Cx   | Freq || POLL | C1-S | C1E- | C3-S | C6-S | C7-S 
   0|  0,00|  0,00|  0,00|  0,00||  0,00|  0,00|  0,00||  2,01| 97,99|  2095||  0,00|  0,66|  0,12|  0,43|  0,16| 96,72
   1|  0,00|  0,00|  0,00|  0,00||  0,00|  0,00|  0,00||100,00|  0,00|  2095||  0,00|  0,00|  0,00|  0,00|  0,00|  0,00
   2|  0,00|  0,00|  0,00|  0,00||  0,00|  0,00|  0,00|| 99,08|  0,92|  2094||  0,00|  0,00|  0,00|  0,00|  0,00|  0,92
   3|  0,00|  0,00|  0,00|  0,00||  0,00|  0,00|  0,00||100,00|  0,00|  2095||  0,00|  0,00|  0,00|  0,00|  0,00|  0,00
System's multi core scheduler setting: not supported
System's thread sibling scheduler setting: not supported
analyzing CPU 0:
perf-bias: 0

[blocks B ] sys-power/cpufrequtils («sys-power/cpufrequtils» is blocking sys-power/cpupower-3.14)

Если надо, поставлю. В ядре по умолчанию performance, cpufrequtils не использую.

alextk ()

я бы посмотрел make -j5 на ядре и sensors (вдруг температура на 1-ом ядре неверно определяется).

backbone ★★★★★ ()
Ответ на: комментарий от alextk

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

stevejobs ★★★★☆ ()
Ответ на: комментарий от alextk

Кроме мыслей посмотреть температуру по ядрам (вроде как в зависимости от неё цпу задачи перекидывает) и поставить sys-apps/microcode-ctl ничего на ум не приходит.

backbone ★★★★★ ()
Последнее исправление: backbone (всего исправлений: 1 )
Ответ на: комментарий от alextk

+71.0°C

По-моему, многовато. А если выключить ноут на полчаса, затем сразу запустить make -j5 изменится ли результат?

backbone ★★★★★ ()
Ответ на: комментарий от snaf

CPU(s): 4

Это значение ядра + потоки. Нечего умножать уже умноженное. У него 2 ядерный штеуд с HT.

http://ark.intel.com/ru/products/52220/Intel-Core-i3-2310M-Processor-3M-Cache...

bhfq ★★★★★ ()
Последнее исправление: bhfq (всего исправлений: 1 )
Ответ на: комментарий от alextk

В принципе, может и нормальная. Сравнил сейчас на i3 380M 4x{while [ 1 ]; do; done}. Тоже температура под 70'C: общая 69'C, core0=64'C, core1=69'C. htop показывает загрузку всех ядер. Значит дело в чём-то другом.

backbone ★★★★★ ()
Последнее исправление: backbone (всего исправлений: 1 )
Ответ на: комментарий от wakuwaku

Там скриптик есть, я еще не успел сравнить, но собираюсь попробовать.

zinfandel ★★ ()
Ответ на: комментарий от bhfq

что то я не туда глянул. Я увидел 4 ядра вместо двух.

snaf ★★★★★ ()
Ответ на: комментарий от zinfandel

Хочу дополнить, что это мнение одного из самых активных арч-тестеров. Что означает, что пакетов он каждый день собирает - дай Боже, а значит он кое-что подозревает об оптимизации времени сборки )))

Pinkbyte ★★★★★ ()
Ответ на: комментарий от wakuwaku

Эм... Ну проверь. Сборка в tmpfs - исключительно чтобы проверить, что упирается всё не в отзывчивость дисковой подсистемы.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от alextk

Всё верно считаешь, не слушай всяких.
Попробуй make запускать вообще без -j, он автоматически должен выбрать количество потоков.

CYB3R ★★★★★ ()
Ответ на: комментарий от goingUp

А, параметры. В параметры - ничего. Только init=/usr/lib/systemd/systemd.

alextk ()
Ответ на: комментарий от CYB3R

Да тут не в количестве потоков проблема, я же уже показывал, что и при >10 потоков CPU0 простаивает.

alextk ()
Ответ на: комментарий от wakuwaku

Чем больше параллельно запускается компиляторов по отношению к количеству потоков, тем больше очередь стопорится.

bhfq ★★★★★ ()
Последнее исправление: bhfq (всего исправлений: 1 )
Ответ на: комментарий от CYB3R

Попробуй make запускать вообще без -j, он автоматически должен выбрать количество потоков.

Угу, угу. В 1 поток будет шпарить, если MAKEOPTS не определены.

devl547 ★★★★★ ()

Одна не распараллеливамая (средствами HT) задача заняла одно ядро, на втром крутится make. Запусти только make.

arson ★★★★★ ()
Ответ на: комментарий от arson

Да при чём тут make и процессы? Сколько раз ещё сказать, что даже при 13 потоках используются только три ядра?

alextk ()

Пробуй -j = количеству ядер*2, ориентируйся чтобы load average было равно количеству ядер.

anonymous ()
Ответ на: комментарий от arson

Хорошо, только 3 потока из 4. Проблему теперь можно считать исчерпанной? Кажется, нет.

alextk ()
Ответ на: комментарий от wakuwaku

Это оно..на самом большом значении и на одном и том же ядре. Что-то с этим сделать нельзя? Я попробую отключить microcode-ctl для начала.

alextk ()
Ответ на: комментарий от bhfq

На примере kde-base/kdelibs каждый поток сверх количества ядер добавляет несколько секунд ко времени компиляции, 1 простаивающее ядро добавляет 2 минуты, у меня даже было какое-то обоснование для таких значений. Вроде emerge умеет в динамический запуск параллельных заданий в зависимости от нагрузки, но я не уверен, как это работает, и столь ли эффективно, как хотелось бы.

wakuwaku ★★★★ ()
Ответ на: комментарий от wakuwaku

Умеет, ели указать -jN и --load-average=M, где N - макс. число задач и M - значение l.a., до которого можно создавать ещё одну задачу.

alextk ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.