[SOLVED] Скорость сборки и загрузка процессора

После апгрейда железа (Phenom II x4 955, 4Gb RAM) я заметил, что сборка программ не загружает процессор на 100%, максимум по 40% на ядро. Хотя старый проц Athlon 64 3500+ загружался полностью. Это как бы не плохо, что процессор не загружен, но от этого ж по идее увеличивается время сборки? В MAKEOPT я указал -j5 (читал, что нужно кол-во ядер + 1). У меня было предположение, что дело в тормознутости винта (компилятор то постоянно что-то читает/пишет), но после монтирования tmpfs в /var/tmp/portage фактически ничего не изменилось. В чём может быть дело?

В доках на gentoo.org

В доках на gentoo.org написано (кол-во ядер)*2 + 1. И рядом комментарий, что это чисто эмпирическое число. Т.е. если считаете, что проц недогружен - увеличивайте.

Не факт. У меня при четырёх

Не факт. У меня при четырёх ядрах указано MAKEOPTS="-j4" и загрузка процессора при компиляции равна 100%. Скорее тут дело в том, что не все операции можно распараллелить, давайте поговорим более конкретно: что собираете, всё ли время сборки загрузка не превышает 25% ?

Да что угодно собираю..

Да что угодно собираю.. Например, wine. Хотя такая же картина со всеми программами...

Загрузка, ясное дело, немного меняется. Скажем от 20% до 40% на ядро.

Являюсь обладателем Phenom II

Являюсь обладателем Phenom II x4 945, процессор достаточно быстрый, что бы его загрузить нужна ситуация в которой возможна установка (сборка) чертырёх не зависимых друг от друго пакетов или четырёх заивсимостей другого пакета, но не зависимых друг от друга. Так же стоит обеспечить приемлимую скорость ввода/вывода, для этого подойдёт сборка в памяти, обеспечивающая максимальную скорость записи / чтения, не зависящую от жёсткого диска., добавьте следующую строчку в /etc/fstab:

shm 	/var/tmp/portage tmpfs 		defaults,size=2048M 0 0

Здесь указан максимальный размер выделяемой памяти. В /var/tmp/portage распаковываются исходные коды устанавливаемого пакета и происходит его сборка.

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

EMERGE_DEFAULT_OPTS="--jobs 5 --load-average=4"
MAKEOPTS="-j5"

У меня 4 Гб ОЗУ.

Хмм.. А вот при сборке ядра

Хмм.. А вот при сборке ядра загрузка пошла на 100% все 4 ядра :)

Хе. За пару минут собралось :) На старом проце нужно было минут 20 минимум...

Пару минут, это вы уже

Пару минут, это вы уже утрируете, 5 минут куда ни шло.

Я сам удивился, когда первый

Я сам удивился, когда первый раз собирал ядро на новое железо. Поставил сборку, пошел делать чай. Пришел - а оно уже готово. Ради интереса только что пересобрал (сначала сделал make mrproper, чтоб сборка была полной; конфиг, разумеется, сохранил) и засёк время - 2 минуты 10 секунд на неразогнаном Phenom II x4 955 (3.2ГГц). Собирал так:

CFLAGS_KERNEL="-march=amdfam10 -O2 -pipe" make -j5

Ну поздравляю тогда )

Ну поздравляю тогда )

.

А как оно в работе такое ядро? Просто у меня при сборке gentoo-sources при make -j5 сборка заканчивается где то на середине, по непонятным причинам процессор интел q6600

Нормально работает. В

Нормально работает. В принципе ничем не отличается от собраного с параметрами по-умолчанию (просто make). Во всяком случае, визуально разницы в скорости работы системы не заметно. Ну и стабильность такая-же, т.е. ничего не падает.

Стало быть, где-то ещё затык,

Стало быть, где-то ещё затык, в памяти или ещё где-нибудь. Обычно процесс компиляции занимает одно ядро целиком, а тут их пять. Можно попробовать выставить -j ещё побольше, посмотреть, что изменится. А, и последить сразу и за загрузкой проца, и за load average через тот же htop.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Это 4-х ядерный процессор.

Это 4-х ядерный процессор.

Я в курсе. И?

Я в курсе. И?

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

>Обычно процесс компиляции

krigstask написал(а):
Обычно процесс компиляции занимает одно ядро целиком, а тут их пять. ...

Видимо, имеется в виду 5

Видимо, имеется в виду 5 процессов компиляции. Хотя, соглашусь, сначала тоже подумал, что речь про 5 ядер :)

Вряд ли, либо автор не умеет

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

Спасибо, Ваше мнение очень

Спасибо, Ваше мнение очень важно для нас.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Всегда пожалуйста, но

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

Да, но Viktor101 взял на себя

Да, но Viktor101 взял на себя труд расшифровать и пояснить, так что не вижу смысла продолжать это никчёмное обсуждение.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Не стОит столь категорично

Не стОит столь категорично отниситься по, всего лишь, единственной фразе. И, да, разговор ушел в сторону - что имелось ввиду уже выяснили.

Всё, я разобрался. Это моя

Всё, я разобрался. Это моя ошибка, странно только, что portage не ругался на это. Вместо MAKEOPTS было указано MAKEOPT. Исправил и загрузка стала 100% на каждом ядре. Разумеется, и скорость сборки возрасла. Всем спасибо за участие.

А на что ему ругаться, взял

А на что ему ругаться, взял значение по умолчанию и пошёл дальше. make.conf — это же сборище переменных для Portage и всё

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Ну на неправильный

Ну на неправильный PORTDIR_OVERLAY он ругается аж бегом :)

На неправильное значение

На неправильное значение переменной или PRTDR_OVRLAY? Тут наличествует принципиальная разница, знаете ли.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".