Случился у меня недавно апгрейд - одноядерный семпрон был заменян на Core 2 Quad. К тому времени я уже поставил FreeBSD 7.1 x64 и собрал большую часть нужного софта. Так что новенький проц в комплекте с материнкой пришел уже на все готовенькое - я только подправил fstab да xorg.conf.
При загрузке системы пишет:
kernel: SMP: AP CPU #2 Launched!
kernel: SMP: AP CPU #1 Launched!
kernel: SMP: AP CPU #3 Launched!
т.е. все ядра нашлись. Но например при попытке собрать что-нибудь Idle = 75%, т.е. фактически используется только 1 ядро. Можно ли как-то сделать чтобы использовались все 4? Ну и вообще что нужно подтюниговать для максимальной производительности?
> Но например при попытке собрать что-нибудь Idle = 75%поподробнее про "собрать", компиляли че та?
>> Но например при попытке собрать что-нибудь Idle = 75%
>
>поподробнее про "собрать", компиляли че та?да, интересует прежде всего сборка ПО из портов.
копайте в сторону опции make -jN , где N - число одновременно запущенных процессов. Обычно N советуют сделать равным два*кол-во ядер, т.е. 8 в Вашем случае.
>копайте в сторону опции make -jN , где N - число одновременно
>запущенных процессов. Обычно N советуют сделать равным два*кол-во ядер, т.е. 8
>в Вашем случае.Следует обратить внимание на то, что "make -jN" распределит нагрузку по процессорам в той мере, на которой она способна, только при сборке. Ускорив, таким образом, только сборку приложения. Скажем, компилируя сразу несколько файлов одновременно вместо того, чтобы компилить их "по очереди".
Само же приложение будет работать, используя несколько процов только, если автор приложения предусмотрел эту фичу.
Зато вы лично получаете отличную возможность писать "с нуля" приложения, использующие все восемь, в вашем случае, ядер :)
>копайте в сторону опции make -jN , где N - число одновременно
>запущенных процессов. Обычно N советуют сделать равным два*кол-во ядер, т.е. 8
>в Вашем случае.Стоит сказать, что make -jN в портах не будет ничего параллелить, так как непосредственно сборкой занимается другой make. Можно добавить -jN в MAKE_ARGS, но далеко не каждый порт после этого соберется (есть кривые makefile которые не собираются с -jN вообще, есть в конце концов порты, не использующие make вообще).
Можно собирать несколько портов одновременно, но надо следить, чтобы ничто одновременно не устанавливалось (install), ибо тогда можно попортить pkgdb.
>копайте в сторону опции make -jN , где N - число одновременно
>запущенных процессов. Обычно N советуют сделать равным два*кол-во ядер, т.е. 8
>в Вашем случае.Не рекомендую на данный момент использовать это. Тем более это не будет работать правильно.
Сейчас в рамках SummerOfCode2008 David Forsythe пытается решить вопрос по параллельной сборке портов, но это решение ещё не готово.Allowing for parallel builds in the FreeBSD Ports Collection
http://wiki.freebsd.org//SummerOfCode2008#head-1abba39cb7f9d...