Компилирование -- весь день!
Модератор: /dev/random
Компилирование -- весь день!
С утра решил обновиться. Запустил, он хочет обновить 75 пакетов. Давай, думаю, без проблем -- компилируй братан.
И вот весь день он компилирует (уже 9 часов). И только 63 пакета.
Да, я знаю, что можно нажать ctrl+z, а потом fg, но вот смысл? Мне надо, чтобы всё докомпилировал, чтобы sudo ставить, а компьютер всё компилирует и компилирует. Почему то вспомнил шутку, что gentoo'шники не пользуются никаким софтом на ПК, так как они его постоянно компилируют.
И вот весь день он компилирует (уже 9 часов). И только 63 пакета.
Да, я знаю, что можно нажать ctrl+z, а потом fg, но вот смысл? Мне надо, чтобы всё докомпилировал, чтобы sudo ставить, а компьютер всё компилирует и компилирует. Почему то вспомнил шутку, что gentoo'шники не пользуются никаким софтом на ПК, так как они его постоянно компилируют.
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Компилирование -- весь день!
azsx писал(а): ↑11.01.2018 11:39С утра решил обновиться. Запустил, он хочет обновить 75 пакетов. Давай, думаю, без проблем -- компилируй братан.
И вот весь день он компилирует (уже 9 часов). И только 63 пакета.
Да, я знаю, что можно нажать ctrl+z, а потом fg, но вот смысл? Мне надо, чтобы всё докомпилировал, чтобы sudo ставить, а компьютер всё компилирует и компилирует. Почему то вспомнил шутку, что gentoo'шники не пользуются никаким софтом на ПК, так как они его постоянно компилируют.
Да и пусть себе компилирует в фоне, вам-то что? Продолжайте работать. Надо поставить sudo - ставьте. Зачем, по-вашему, компьютеру многозадачность?
Спасибо сказали:
Re: Компилирование -- весь день!
Зачем, по-вашему, компьютеру многозадачность?
В дебиан если что то одновремнно с apt ставишь, то он вроде ругается на блокировку каких то зависимостей.
А ещё он по htop у меня целиком все 2 ядра забил (лоад авредже 3,5). Совсем помрёт от многозадачности.
А вы сразу одновременно делаете?
Re: Компилирование -- весь день!
Та ладно, 63 пакета. Вот когда целиком мир пересобираешь (3к+ пакетов) вот тогда да. Ядра дымятся сутками. Все 8 штук.
А ускорять можно по разному. Допустим собирать в памяти.
А ускорять можно по разному. Допустим собирать в памяти.
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Компилирование -- весь день!
В gentoo не ругается. Единственное, что может случиться - это если какой-то пакет хотят поставить/обновить обе одновременно выполняемые команды emerge, то обе команды его и скомпилируют, потратив вдвое больше вычислительных ресурсов. Но в вашем случае это не грозит: не думаю, что для установки sudo понадобится обновить что-то из того, что вы уже обновляете. Главное - не меняйте конфигурацию (включая USE-флаги) пока идёт сборка.
Просто понизьте приоритет, чтобы ресурсы процессора выделялись emerge только когда они не нужны никому другому. В make.conf даже специальная опция для этого есть, но это на будущее. Для уже запущенной команды используйте renice.
Разумеется. Что я, по-вашему, сидеть и ждать буду, пока он всё соберёт?
Спасибо сказали:
Re: Компилирование -- весь день!
Допустим собирать в памяти.
У меня 8 гб памяти, занято 1,8. А как компилировать в памяти?
В gentoo не ругается.
***
Главное - не меняйте конфигурацию (включая USE-флаги) пока идёт сборка.
Не знал.
Просто понизьте приоритет, чтобы ресурсы процессора выделялись emerge только когда они не нужны никому другому.
очень интересно, а есть такая опция в renice? Просто, раздражает, пусть бы он компилировался на все 100, когда приостановлен vlc.
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Компилирование -- весь день!
По умолчанию emerge компилирует пакеты в /var/tmp/portage. Смонтируйте туда tmpfs. Только учтите, что по умолчанию tmpfs ограничен половиной объёма оперативной памяти (в вашем случае - 4 гигабайтами), этого может не хватить для особо зверских пакетов вроде chromium.
"Компилируется только когда приостановлен VLC" - нет. А вот "выделять процессорное время в первую очередь для других процессов, таких, как VLC, а компилятору - только если в данную (условно) микросекунду VLC уже закончил отображать очередной кадр и несколько (условно) микросекунд ему процессор не понадобится" - для этого приоритеты и предназначены. "nice"/"renice" устанавливают "мягкий" приоритет, в случае которого система имеет право всё-таки изредка передать управление низкоприоритетным задачам, даже когда процессор нужен высокоприоритетным - но только изредка. Чем больше разница приоритетов, тем реже. "chrt" устанавливает "жесткий" приоритет, который не нарушается никогда. "ionice" - приоритет работы с диском и другими операциями ввода-вывода.
Спасибо сказали:
Re: Компилирование -- весь день!
У меня для этого дела в /etc/make.conf есть
И все собирается/пересобирается в оперативной памяти. Если не менять ее настройку, то размер shm будет половина оперативной памяти.
В калькуляторе подобное вроде принято делать не напрямую в /etc/make.conf. Можно почитать подробнее в документации на калькулятор.
P.S. Для "особо зверских пакетов" есть /etc/portage/package.env. Можно там настроить, что именно компилируется в памяти, а что - на винте.
Код: Выделить всё
PORTAGE_TMPFS="/dev/shm"
PORTAGE_TMPDIR="/dev/shm"
BUILD_PREFIX="/dev/shm"
И все собирается/пересобирается в оперативной памяти. Если не менять ее настройку, то размер shm будет половина оперативной памяти.
В калькуляторе подобное вроде принято делать не напрямую в /etc/make.conf. Можно почитать подробнее в документации на калькулятор.
P.S. Для "особо зверских пакетов" есть /etc/portage/package.env. Можно там настроить, что именно компилируется в памяти, а что - на винте.
Спасибо сказали:
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Компилирование -- весь день!
На CPU? Без шансов. Сейчас уже и на GPU толком не помайнишь, как минимум FPGA нужны, а то и специализированное оборудование. А компиляция занимает только CPU.
Спасибо сказали:
Re: Компилирование -- весь день!
yoshakar рискну с вами не согласиться. Именно fg.
можно, но я не майню. К тому же там комп cpu 1.1 гц, видеокарты нет.
Зато сегодня утро, а комп компилирует последний пакет! Больше суток.
я понял, что это не просто. Буду думать об этом потом. А вот renice попробую.
А можно было бы это время и электроэнергию потратить на майнинг BTC
можно, но я не майню. К тому же там комп cpu 1.1 гц, видеокарты нет.
Зато сегодня утро, а комп компилирует последний пакет! Больше суток.
По умолчанию emerge компилирует пакеты в /var/tmp/portage. Смонтируйте туда tmpfs. Только учтите, что по умолчанию tmpfs ограничен половиной объёма оперативной памяти (в вашем случае - 4 гигабайтами), этого может не хватить для особо зверских пакетов вроде chromium.
я понял, что это не просто. Буду думать об этом потом. А вот renice попробую.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Компилирование -- весь день!
О этот волнительный момент, когда из-за нехватки памяти сборка большого пакета останавливается после 6 часов непрерывного компилирования, а все временные файлы подчищаются! =)
Спасибо сказали:
- delvin-fil
- Сообщения: 135
- ОС: Linux → Gentoo
Re: Компилирование -- весь день!
Ох, ну ёхарный бабай
А во так , не судьба:
alias emerge='ionice -c 2 -n 7 nice -n 19 emerge'
А во так , не судьба:
alias emerge='ionice -c 2 -n 7 nice -n 19 emerge'
import __hello__
Re: Компилирование -- весь день!
вот тоже интересный вопрос. Я выполняю
а толку то? Если посмотреть ваши .ebuild, то там везде make -- самое такое ресурсоёмкое. То есть мне надо чтобы каждый отдельный make запустился с пониженным приоритетом, а не команда обновления, верно?
sudo nice -n 0 emerge -avuND @world
а толку то? Если посмотреть ваши .ebuild, то там везде make -- самое такое ресурсоёмкое. То есть мне надо чтобы каждый отдельный make запустился с пониженным приоритетом, а не команда обновления, верно?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: Компилирование -- весь день!
"nice -n 0" не делает ничего. Указанное в -n значение прибавляется к значению "вежливости" ("niceness") процесса. Чем оно больше, тем чаще он будет готов "пропускать вперёд" другие процессы. "-n 0" означает "прибавить 0", т.е. не делать ничего.
Процессы наследуют приоритет родительского процесса.
Спасибо сказали:
- delvin-fil
- Сообщения: 135
- ОС: Linux → Gentoo
Re: Компилирование -- весь день!
авредже 3,5
Серьезно?
У меня, когда больше одного ебилда собираю, 12-17 в порядке вещей. И да, с nice.
import __hello__
Re: Компилирование -- весь день!
delvin-fil, у меня Intel® Celeron® CPU 847 @ 1.10GHz