Компилирование -- весь день!

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

azsx
Сообщения: 1936
ОС: calculate linux, debian, ubuntu

Компилирование -- весь день!

Сообщение azsx » 11.01.2018 11:39

С утра решил обновиться. Запустил, он хочет обновить 75 пакетов. Давай, думаю, без проблем -- компилируй братан.
И вот весь день он компилирует (уже 9 часов). И только 63 пакета.
Да, я знаю, что можно нажать ctrl+z, а потом fg, но вот смысл? Мне надо, чтобы всё докомпилировал, чтобы sudo ставить, а компьютер всё компилирует и компилирует. Почему то вспомнил шутку, что gentoo'шники не пользуются никаким софтом на ПК, так как они его постоянно компилируют.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4556
ОС: Gentoo

Re: Компилирование -- весь день!

Сообщение /dev/random » 11.01.2018 11:51

azsx писал(а):
11.01.2018 11:39
С утра решил обновиться. Запустил, он хочет обновить 75 пакетов. Давай, думаю, без проблем -- компилируй братан.
И вот весь день он компилирует (уже 9 часов). И только 63 пакета.
Да, я знаю, что можно нажать ctrl+z, а потом fg, но вот смысл? Мне надо, чтобы всё докомпилировал, чтобы sudo ставить, а компьютер всё компилирует и компилирует. Почему то вспомнил шутку, что gentoo'шники не пользуются никаким софтом на ПК, так как они его постоянно компилируют.

Да и пусть себе компилирует в фоне, вам-то что? Продолжайте работать. Надо поставить sudo - ставьте. Зачем, по-вашему, компьютеру многозадачность?
Спасибо сказали:

azsx
Сообщения: 1936
ОС: calculate linux, debian, ubuntu

Re: Компилирование -- весь день!

Сообщение azsx » 11.01.2018 12:14

Зачем, по-вашему, компьютеру многозадачность?

В дебиан если что то одновремнно с apt ставишь, то он вроде ругается на блокировку каких то зависимостей.
А ещё он по htop у меня целиком все 2 ядра забил (лоад авредже 3,5). Совсем помрёт от многозадачности.
А вы сразу одновременно делаете?
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 1272
ОС: Mandriva => Gentoo (~amd64)

Re: Компилирование -- весь день!

Сообщение devilr » 11.01.2018 12:38

Та ладно, 63 пакета. Вот когда целиком мир пересобираешь (3к+ пакетов) вот тогда да. Ядра дымятся сутками. Все 8 штук. :)
А ускорять можно по разному. Допустим собирать в памяти.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4556
ОС: Gentoo

Re: Компилирование -- весь день!

Сообщение /dev/random » 11.01.2018 12:42

azsx писал(а):
11.01.2018 12:14
В дебиан если что то одновремнно с apt ставишь, то он вроде ругается на блокировку каких то зависимостей.

В gentoo не ругается. Единственное, что может случиться - это если какой-то пакет хотят поставить/обновить обе одновременно выполняемые команды emerge, то обе команды его и скомпилируют, потратив вдвое больше вычислительных ресурсов. Но в вашем случае это не грозит: не думаю, что для установки sudo понадобится обновить что-то из того, что вы уже обновляете. Главное - не меняйте конфигурацию (включая USE-флаги) пока идёт сборка.

azsx писал(а):
11.01.2018 12:14
А ещё он по htop у меня целиком все 2 ядра забил (лоад авредже 3,5). Совсем помрёт от многозадачности.

Просто понизьте приоритет, чтобы ресурсы процессора выделялись emerge только когда они не нужны никому другому. В make.conf даже специальная опция для этого есть, но это на будущее. Для уже запущенной команды используйте renice.

azsx писал(а):
11.01.2018 12:14
А вы сразу одновременно делаете?

Разумеется. Что я, по-вашему, сидеть и ждать буду, пока он всё соберёт?
Спасибо сказали:

azsx
Сообщения: 1936
ОС: calculate linux, debian, ubuntu

Re: Компилирование -- весь день!

Сообщение azsx » 11.01.2018 13:09

Допустим собирать в памяти.

У меня 8 гб памяти, занято 1,8. А как компилировать в памяти?
В gentoo не ругается.
***
Главное - не меняйте конфигурацию (включая USE-флаги) пока идёт сборка.

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

очень интересно, а есть такая опция в renice? Просто, раздражает, пусть бы он компилировался на все 100, когда приостановлен vlc.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4556
ОС: Gentoo

Re: Компилирование -- весь день!

Сообщение /dev/random » 11.01.2018 13:32

azsx писал(а):
11.01.2018 13:09
У меня 8 гб памяти, занято 1,8. А как компилировать в памяти?

По умолчанию emerge компилирует пакеты в /var/tmp/portage. Смонтируйте туда tmpfs. Только учтите, что по умолчанию tmpfs ограничен половиной объёма оперативной памяти (в вашем случае - 4 гигабайтами), этого может не хватить для особо зверских пакетов вроде chromium.

azsx писал(а):
11.01.2018 13:09
очень интересно, а есть такая опция в renice? Просто, раздражает, пусть бы он компилировался на все 100, когда приостановлен vlc.

"Компилируется только когда приостановлен VLC" - нет. А вот "выделять процессорное время в первую очередь для других процессов, таких, как VLC, а компилятору - только если в данную (условно) микросекунду VLC уже закончил отображать очередной кадр и несколько (условно) микросекунд ему процессор не понадобится" - для этого приоритеты и предназначены. "nice"/"renice" устанавливают "мягкий" приоритет, в случае которого система имеет право всё-таки изредка передать управление низкоприоритетным задачам, даже когда процессор нужен высокоприоритетным - но только изредка. Чем больше разница приоритетов, тем реже. "chrt" устанавливает "жесткий" приоритет, который не нарушается никогда. "ionice" - приоритет работы с диском и другими операциями ввода-вывода.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 1272
ОС: Mandriva => Gentoo (~amd64)

Re: Компилирование -- весь день!

Сообщение devilr » 11.01.2018 13:36

У меня для этого дела в /etc/make.conf есть

Код: Выделить всё

PORTAGE_TMPFS="/dev/shm"
PORTAGE_TMPDIR="/dev/shm"
BUILD_PREFIX="/dev/shm"

И все собирается/пересобирается в оперативной памяти. Если не менять ее настройку, то размер shm будет половина оперативной памяти.
В калькуляторе подобное вроде принято делать не напрямую в /etc/make.conf. Можно почитать подробнее в документации на калькулятор.
P.S. Для "особо зверских пакетов" есть /etc/portage/package.env. Можно там настроить, что именно компилируется в памяти, а что - на винте.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 6886
Статус: Маньяк
ОС: Android, GNU/Linux, Windows

Re: Компилирование -- весь день!

Сообщение serzh-z » 11.01.2018 21:34

azsx писал(а):
11.01.2018 11:39
И вот весь день он компилирует (уже 9 часов).
А можно было бы это время и электроэнергию потратить на майнинг BTC... =)
Я проснулся сегодня в своей постели - сто лет назад. Кто я? Кто я...
Спасибо сказали:

yoshakar
Сообщения: 240
ОС: Debian Stretch

Re: Компилирование -- весь день!

Сообщение yoshakar » 11.01.2018 21:44

azsx писал(а):
11.01.2018 11:39
можно нажать ctrl+z, а потом fg
bg
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4556
ОС: Gentoo

Re: Компилирование -- весь день!

Сообщение /dev/random » 11.01.2018 21:48

serzh-z писал(а):
11.01.2018 21:34
А можно было бы это время и электроэнергию потратить на майнинг BTC... =)

На CPU? Без шансов. Сейчас уже и на GPU толком не помайнишь, как минимум FPGA нужны, а то и специализированное оборудование. А компиляция занимает только CPU.
Спасибо сказали:

azsx
Сообщения: 1936
ОС: calculate linux, debian, ubuntu

Re: Компилирование -- весь день!

Сообщение azsx » 12.01.2018 01:37

yoshakar рискну с вами не согласиться. Именно fg.
А можно было бы это время и электроэнергию потратить на майнинг BTC

можно, но я не майню. К тому же там комп cpu 1.1 гц, видеокарты нет.
Зато сегодня утро, а комп компилирует последний пакет! Больше суток.
По умолчанию emerge компилирует пакеты в /var/tmp/portage. Смонтируйте туда tmpfs. Только учтите, что по умолчанию tmpfs ограничен половиной объёма оперативной памяти (в вашем случае - 4 гигабайтами), этого может не хватить для особо зверских пакетов вроде chromium.

я понял, что это не просто. Буду думать об этом потом. А вот renice попробую.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 6886
Статус: Маньяк
ОС: Android, GNU/Linux, Windows

Re: Компилирование -- весь день!

Сообщение serzh-z » 12.01.2018 02:43

/dev/random писал(а):
11.01.2018 13:32
Смонтируйте туда tmpfs.
О этот волнительный момент, когда из-за нехватки памяти сборка большого пакета останавливается после 6 часов непрерывного компилирования, а все временные файлы подчищаются! =)
Я проснулся сегодня в своей постели - сто лет назад. Кто я? Кто я...
Спасибо сказали:

Аватара пользователя
delvin-fil
Сообщения: 63
ОС: Linux

Re: Компилирование -- весь день!

Сообщение delvin-fil » 12.01.2018 04:41

Ох, ну ёхарный бабай
А во так , не судьба:
alias emerge='ionice -c 2 -n 7 nice -n 19 emerge'

Код: Выделить всё

import __hello__
Спасибо сказали:

azsx
Сообщения: 1936
ОС: calculate linux, debian, ubuntu

Re: Компилирование -- весь день!

Сообщение azsx » 12.01.2018 04:51

вот тоже интересный вопрос. Я выполняю
sudo nice -n 0 emerge -avuND @world

а толку то? Если посмотреть ваши .ebuild, то там везде make -- самое такое ресурсоёмкое. То есть мне надо чтобы каждый отдельный make запустился с пониженным приоритетом, а не команда обновления, верно?
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4556
ОС: Gentoo

Re: Компилирование -- весь день!

Сообщение /dev/random » 12.01.2018 10:24

azsx писал(а):
12.01.2018 04:51
вот тоже интересный вопрос. Я выполняю
sudo nice -n 0 emerge -avuND @world

а толку то?

"nice -n 0" не делает ничего. Указанное в -n значение прибавляется к значению "вежливости" ("niceness") процесса. Чем оно больше, тем чаще он будет готов "пропускать вперёд" другие процессы. "-n 0" означает "прибавить 0", т.е. не делать ничего.

azsx писал(а):
12.01.2018 04:51
Если посмотреть ваши .ebuild, то там везде make -- самое такое ресурсоёмкое. То есть мне надо чтобы каждый отдельный make запустился с пониженным приоритетом, а не команда обновления, верно?

Процессы наследуют приоритет родительского процесса.
Спасибо сказали:

Аватара пользователя
delvin-fil
Сообщения: 63
ОС: Linux

Re: Компилирование -- весь день!

Сообщение delvin-fil » 13.01.2018 01:36

авредже 3,5

Серьезно?
У меня, когда больше одного ебилда собираю, 12-17 в порядке вещей. И да, с nice.

Код: Выделить всё

import __hello__
Спасибо сказали:

azsx
Сообщения: 1936
ОС: calculate linux, debian, ubuntu

Re: Компилирование -- весь день!

Сообщение azsx » 13.01.2018 02:21

delvin-fil, у меня Intel® Celeron® CPU 847 @ 1.10GHz
Спасибо сказали:

Вернуться в «Gentoo Linux»