LINUX.ORG.RU

Жутко тормозит portage

 , ,


0

1

Народ, ну поделитесь своими make.conf в плане niceness, а то сил уже больше нет: стоит лишь запустить emerge-webrsync && eix-sync && emerge -uDN world, как система превращается в однозадачную. Жутчайшие тормоза, просто невозможно делать что-то еще. При том, что у меня в make.conf:

PORTAGE_NICENESS="19"
PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
вроде бы, куда уже niceness и ionice уменьшать? Но на IO полный 12309 (на время сборки доступ к ФС практически прекращается: даже тупо cd сделать и список файлов в /etc получить — минимум 1 минута)!

В sysctl.conf у меня вот что:

# 12309
vm.overcommit_memory = 2
vm.overcommit_ratio = 100
# кэши на дисковое IO по 30МБ
vm.dirty_bytes = 31457280
vm.dirty_background_bytes = 31457280
vm.swappiness = 5
vm.vfs_cache_pressure = 50
vm.dirty_expire_centisecs = 1000
vm.dirty_writeback_centisecs = 200

И 0 толку.

☆☆☆☆☆

emerge-webrsync && eix-sync

зачем?

Deleted
()

1. Проводи обновление дерева ночью по крону.

2. Попробуй verynice.

3. Делай сборку в один поток.

Bfgeshka ★★★★★
()

/usr/portage на отдельной файловой системе или всё свалено вместе с /usr, не говоря уже об общем корне? Лучше даже, что бы /usr/portage/distfiles были также отдельно.

kostik87 ★★★★★
()

Но на IO полный 12309

Только увеличение объема RAM позволяет избавиться от этой проблемы. И портаж тут никаким боком.

Немного сглаживает проблему BFS. Я использую ядро с патчами, которые собирает postfactum.

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

/usr/portage на отдельной файловой системе или всё свалено вместе с /usr, не говоря уже об общем корне? Лучше даже, что бы /usr/portage/distfiles были также отдельно.

Нужен не отдельный раздел, а отдельный носитель.

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

не зависит особо, когда приходят обновы к вебкитгтк даже i5-4690k разогнанный до 4,2 ггц становиться 3 пеньком по ощущениям.

erzent ☆☆
()
Ответ на: комментарий от andreyu

Отдельный носитель - это вообще хорошо, но отдельный раздел будет достаточно, вы в курсе что такое фрагментация директорий?

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

Отдельный носитель - это вообще хорошо, но отдельный раздел будет достаточно,

Нет, не будет.

вы в курсе что такое фрагментация директорий?

Ровно тоже, что и фрагметация файлов.

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

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

erzent ☆☆
()
Ответ на: комментарий от Noob_Linux

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

erzent ☆☆
()
Ответ на: комментарий от kostik87

Сборка в чруте. Чрут — в хомяке.

Alyssa
какое у тебя железо?

Хорошее, ему всего-то лет 5-6.

nepank
зачем?

Затем, что без eix-sync eix не обновится.

Сейчас вот я минуты 2 вообще ничего не мог написать: разархивировались исходники ядра.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Alyssa

поконкретнее

Я не думаю, что тебе вся портянка lspci, cat /proc/meminfo и т.п. нужна. Процессор — i5@2.8GGz, 6ГБ оперативы.

ФС — как обычно, reiserfs. Я другие не уважаю (только дома на убитых HDD у меня ext4, т.к. reiserfs не умеет badblocks на суперблок).

Ведро 3.12.0, на школоарчиге, которому скоро 2.5 лет исполнится.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от erzent

Ты прямо-таки фантаст какой-то!

Т.к. я — никчемный нихренанеделатель, то грантов у меня нет → нет денег на покупку железа → если у меня компьютеру 5-7 лет, то это супер! Многие на 10-15-летних сидят, и не жужжат.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от deity

Вангую тред выбора ssd

Даже если и дадут денег на SSD, то смысл тему создавать? Купил самый дешевый — и вперде!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от erzent

reiserfs которая с 2006 года умерла

4.2! Ты лжешь. reiserfs отлично работает. И то, что ее создатель сидит, не значит, что она умерла! по крайней мере, пока что не придумали ФС кошерней.

ядро старющее

Уж ядро-то вообще не при чем. Ядро можно и по 15 лет не обновлять. Зачем?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от erzent

Никуда я ехать не собираюсь. Тем более в Аргентину. Ты еще скажи, в москвабад ехать...

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Есть у меня такой же друг как ты (что лежит подешевле то и купил) алкаш он еще тот, так вот от него узнал что ssd прошивать можно типа реанимация. Зачем покупать гавно которое через год на помойку.

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

Нет, не будет.

Будет.

Ровно тоже, что и фрагметация файлов.

Не совсем, давай рассмотрим: вот у тебя есть один большой раздел, в котором свалены /usr, /usr/src, /usr/portage, /usr/distfiles и, возможно, /usr/portage/packages.

В начале установки системы, непосредственно после распаковки stage3 и среза portage имеем вот такую структуру физического распределения файлов по разделу, а значит и по диску:

 ---------------------------------------------------------
|   /usr    |      /usr/portage  |       свободное место  |
 ---------------------------------------------------------
затем со временем, после установки программ получаем:
 ---------------------------------------------------------------------------------
|   /usr |  /usr/portage | distfiles  | новые файлы программы, находящиеся в /usr |
 ---------------------------------------------------------------------------------
затем происходит установка ещё большего числа программ, получение distfiles и многократные обновления дерева portage, в результате получаем примерно вот такую картину:
 -------------------------------------------------------------------------------------
| /usr | portage | distfiles  | /usr | /portage/ | distfiles | /usr/ | portage | /usr |
 -------------------------------------------------------------------------------------
как видно при такой каше простой обход дерева portage займёт куда больше времени, ибо что бы считать ebuild`ы будет производиться считывание фактически со всего диска, т.к. portage будет размазан по всей ёмкости раздела вперемешку с /usr, distfiles и /usr/src.

Если выделить отдельный раздел, то файлы portage будут со временем фрагментироваться, но находиться будут в одном участке диска всегда.

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

Когда у меня на буке (бук-то еще живой, но у него нет экрана и клавы, использую как второй домашний компьютер) еще жива была SSD, там никакого 12309 не было вообще! Сейчас там винт, но тоже таких тормозов не наблюдается. По-моему, все-таки причина в чипсете.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от deity

Я бы перешил ноутбучный SSD, когда тот сдох, но там было около 70% бэдов, так что смысла особо не было. Просто отправил на помойку.

Eddy_Em ☆☆☆☆☆
() автор топика

Ладно, пойду-ка я свои железки крутить, пока не разбил совсем клаву и мышу.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Сборка в чруте. Чрут — в хомяке.

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

Сейчас вот я минуты 2 вообще ничего не мог написать: разархивировались исходники ядра.

Вот-вот всё из-за фрагментации, у меня вообще раздельно вот это всё:

/
/usr
/usr/src
/usr/portage
/usr/portage/distfiles
/usr/portage/packages
/opt
/var
/home
на обычном жёстком диске, относительно не новом, всё прекрасно работает, тормозов при 'emerge --sync', 'eix-update', распаковки distfiles и уж тем более сборки пакетов не замечаю, тем более в /var/tmp/portage у меня монтируется часть оперативной памяти.

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

Будет.

Этот «серьезный» аргумент разбивается о стену реальности.

Если выделить отдельный раздел, то файлы portage будут со временем фрагментироваться, но находиться будут в одном участке диска всегда.

Только это не спасет от 12309.

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

на обычном жёстком диске, относительно не новом, всё прекрасно работает, тормозов при 'emerge --sync', 'eix-update', распаковки distfiles и уж тем более сборки пакетов

Проблема не в харде, а в связке всего железа. Так получается, что разработчики, отвечающие за подсистему ввода-вывода в ядре, пользуются идеальной связкой железа или просто тормоза по жизни.
Мне же с железом видимо не везло - как только кончается память, то система становится на колени из-за высокого IO. И частично, но не полностью, эту проблему решает BFS.

не замечаю

Это вообще отдельная песня. Кто-то iOS и OS X считает идеально плавной.

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

Этот «серьезный» аргумент разбивается о стену реальности.

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

Только это не спасет от 12309.

Знаешь, я ни разу с этой проблемой не сталкивался, но даже если она возникнет, то просто удаляются все файлы из /usr/portage или попросту отмонтируется файловая система и пересоздаётся, затем монтируется обратно и всё, делается заново распаковка среза portage и мы имеем чистую не фрагментированную файловую систему, на которой находится срез только дерева portage.

Но я повторюсь, мне делать такие действия не приходилось, всё работает довольно быстро, ибо размер файловой системы под срез portage всего 1 Гб.

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

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

как только кончается память, то система становится на колени из-за высокого IO

На моём рабочем ПК и ноутбуке 8 Гб оперативной памяти, я с таким проблемами не сталкиваюсь, поэтому компиляция проходит в оперативке, нагрузки на диск вообще минимальны.

Это вообще отдельная песня. Кто-то iOS и OS X считает идеально плавной.

Как бы тормоза интерфейса я бы заметил или проблемы с отзывчивостью при запуске программ. Посмотри ещё раз на приведённую мной схему разделения корневой фс, прочитай что я написал, обдумай и попробуй реализовать у себя.

Потом опиши свои ощущения.

Удачи.

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

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

А я сказал, что это просто везение, что ваше железо оказалось подходящим.

Знаешь, я ни разу с этой проблемой не сталкивался,

Ага, вот и разработчики ядра с ней не сталкивались.

но даже если она возникнет

А что делать, если эта проблема возникает не только при синхронизации с деревом портежа? Сносить всю систему и накатывать ее заново?

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

На моём рабочем ПК и ноутбуке 8 Гб оперативной памяти

Ну вот и ответ - 8Гб. Когда для сборки или распаковки будет мало 8Гб, то тормоза снова появятся и отдельный раздел никак не поможет.
Но вы добавите еще 8Гб и будете рассказывать, как вам помогает магия с очисткой отдельного раздела под портаж.

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

А что делать, если эта проблема возникает не только при синхронизации с деревом портежа?

В начале перераспределить её, что бы нивелировать ситуации когда возникает дополнительная фрагментация в частности директорий. Скорее всего у тебя вынесен на отдельную ФС только /home или ещё /usr, продумай какие части файловой системы в Gentoo наиболее подвержены фрагментации и критичны, вынеси их на отдельные ФС.

Сносить всю систему и накатывать ее заново?

Что мусьё не знает как перераспределить уже установленную систему?

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