LINUX.ORG.RU
ФорумTalks

[12309] вот и компиляй современный софт

 


0

2

Обновлял на днях генту, в том числе и лису до десятой версии. Всё шло хорошо, компилялось целый день с терпимыми тормозами, дошло и до лисы, она компилялась всего-то час с небольшим, и тут началось слайдшоу со скоростью один слайд в несколько минут. Дождавшись, пока система среагирует на нажатые клавиши и покажет мне следующий слайд, увидел нечто длинющая команда, занимающая треть 24-дюймового монитора. Вот фото: http://plasmon.rghost.ru/36728661.image сделанное через несколько минут выполнения этой команды (компоновка объектных файлов?). Пенёк-4, памяти всего гиг, открыта традиционно куча приложений, десяток-два вкладок (вы ведь меня понимаете), а команда жрет 600+ (она и выделена в htop: 613M RES), при этом проц почти не жрется, так что наблюдаем типичный 12309. В общем, эта команда выполнялась по меньшей мере час, загнав в своппинг почти два гига, после чего я уснул так и не дождавшись пока она завершится. А компиляция длилась всего-то час с небольшим...

PS: pf-kernel для эксперимента.

PPS: предвкушаю «зачем компилять?», «сноси генту!» и «переходи на арч!»

Ответ на: комментарий от drBatty

ну история успеха - собрал IceCat 10.0 на iP4+1500Mb. Правда для этого пришлось отрубить иксы. Уверен, что на 2Гб это лишнее.

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

В общем, попробовал поиграться с swappiness — не помогло. Когда размер файла в tmpfs достигает полтора гигабайта при swappiness=100, всё фризится точно так же. Может, от swappiness и зависит объём занятой памяти, при котором наступает зависон, но он всё равно наступает на значениях, меньших тех, что бывают при работе ld, поэтому это, к сожалению, не решение.

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

gentoo_root

В общем, попробовал поиграться с swappiness — не помогло.

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

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

Когда размер файла в tmpfs достигает полтора гигабайта

Что-что?

Полнейшая бредятина отводить в ОЗУ место для чего-то ещё (я имею в виду tmpfs), если памяти и так не хватает.

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

ты написал херню какую-то

Я сделал то, что ты говорил, и написал результат. При любом swappiness тормоза одинаковые — полный фриз системы.

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

Чудес не бывает, если памяти не хватает, её не хватает

Тем не менее, здесь нашлись люди, у которых каким-то чудесным образом собирается IceCat на 512 метрах и ничего не виснет.

Вперёд, в магазин, за памятью.

Да нафиг она мне сдалась? Мне гигабайта всегда хватало в течение уже около 6 лет, а из-за какого-то браузера добавлять её не буду. К тому же один из компьютеров — нетбук, на который можно добавить только до 2 гигабайт, а этого тоже не хватит. Более того, я собираюсь его заменить совсем.

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

> Когда размер файла в tmpfs достигает полтора гигабайта

Полнейшая бредятина отводить в ОЗУ место для чего-то ещё (я имею в виду tmpfs), если памяти и так не хватает.

[12309] вот и компиляй современный софт (комментарий)

Тут как раз и надо было забить память.

И ничего плохого нет в том, что у меня /tmp лежит в памяти. Мне её всегда хватает, кроме тех редких моментов, когда линкуется firefox (я стараюсь это делать, пока сплю, чтобы не мешало). Более того, в данный момент там занято ровно 84 килобайта, что вообще практически никак не повлияет на всё. Зато куча удобств — и автоочистка при выключении, не отнимающая времени совсем, и скорость доступа быстрее.

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

2 гигабайта хватит.

Вряд ли, потому что у меня был своп чуть больше гигабайта и ld при этом бывал убитым oom-killer'ом, пока я не увеличил своп. Так что своппинг всё равно будет (пусть и не такой сильный), а это всё равно плохо. И где гарантия, что с выходом очередной версии мне не придётся добавить ещё 2 ГБ, потом ещё и ещё? В этом случае придётся отказаться от сборки из исходников у себя на компе, но тогда купленная память пропадёт зря.

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

Зато куча удобств — и автоочистка при выключении, не отнимающая времени совсем, и скорость доступа быстрее.

1. Автоочистка любой ФС настраивается в стартовых скриптах.
2. Скорость доступа к ФС, где бы она ни находилась, определяется протоколом доступа к ФС и всегда проходит через файловый кэш, находящийся... в ПАМЯТИ!

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

Автоочистка любой ФС настраивается в стартовых скриптах.

Это занимает время, замедляя загрузку. Не годится.

Скорость доступа к ФС, где бы она ни находилась, определяется протоколом доступа к ФС и всегда проходит через файловый кэш, находящийся... в ПАМЯТИ!

В кэше может быть любая свалка, а tmpfs всегда будет в памяти (до своппинга при обычной работе дело не доходит).

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

В кэше может быть любая свалка, а tmpfs всегда будет в памяти

Я бы переиначил: в /tmp может быть любая свалка, а в файловом кэше всегда порядок и многое из того, что нужно. ;)

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

gentoo_root

Тем не менее, здесь нашлись люди, у которых каким-то чудесным образом собирается IceCat на 512 метрах и ничего не виснет.

пятая версия? легко! А вот десятая не собирается.

gentoo_root

Да нафиг она мне сдалась? Мне гигабайта всегда хватало в течение уже около 6 лет

можно ведь и не собирать, а качать сборки. Но факт остаётся фактом - линкер жрёт почти 1200Мб резидентной памяти при сборке 10ки. Возможно магия BSD и скинет до 900, но никак не меньше.

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

iZEN

1. Автоочистка любой ФС настраивается в стартовых скриптах.
2. Скорость доступа к ФС, где бы она ни находилась, определяется протоколом доступа к ФС и всегда проходит через файловый кэш, находящийся... в ПАМЯТИ!

плюсую по всем пунктам!

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

Я сделал то, что ты говорил, и написал результат.

результата нет
не понятен порядок действий
сами действия не описаны - т.е. не понятно, в равных ли условиях проводились тесты
нет цифр
короче - ноль

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

сами действия не описаны - т.е. не понятно, в равных ли условиях проводились тесты

Загрузился, сделал файл на 1,5 ГБ, зависло, Alt-SyqRq-B, загрузился, дёрнул swappiness на 100, сделал файл на 1,5 ГБ, тоже зависло.

нет цифр

Какой смысл в цифрах, если при создании файла на 1.5 гигабайта в tmpfs в обоих случаях всё полностью зависло? А если оно виснет при этом, то оно точно так же зависнет и при запуске ld. Поэтому исходную проблему не решит изменение swappiness.

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

рамы не вижу

сколько в своп упало - не вижу

Думаешь, мне легко ввести любую команду, когда комп ПОЛНОСТЬЮ завис? Пока введутся первые 2 буквы, пройдёт 15 минут, все процессы будут убиты oom-killer'ом, а новые не будут создаваться с ошибкой, что на fork() не хватает ресурсов.

скорости не вижу

Вот и я скорости не вижу. Она нулевая. Полное зависание.

или тебе список команд дать?

Я их просто не смогу ввести.

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

ты решил просто потроллить

Никогда не понимал людей, которым везде мерещится троллинг.

разговор окончен

окай.

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

а он не мерещится
тебе рассказать про «команда && команда && команда»?
или ты не знаешь сколько рамы до запуска dd?
или же ты не способен выхлоп направить в файл?
или шило в SOPA и ты тупо не можешь подождать завершения процесса?
или ты не можешь сказать какими кусками писал в файл dd?
короче - реально, кроме троллинга, нет объективных причин не представить эти данные

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

При swappiness=10, размер файла 3 гига: http://rghost.ru/36771283

При swappiness=100, размер файла 3 гига: http://rghost.ru/36771289

В обоих случаях после завершения процесса можно работать, и не тормозит, но при 100 не тормозит сразу, а при 10 не тормозит через небольшое время. Во время процесса при 100 работать комфортнее. Но вот только это нифига не объективный тест, потому что тут мы просто записываем данные и после этого никогда ими не пользуется. При линковке же ld постоянно дёргает разные куски памяти, что даёт гораздо более агрессивный своппинг, и тут уже не поможет swappiness=100. Этот тест не эквивалентен работе ld, поэтому вообще было мало смысла его проводить.

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

От tmpfs откажитесь и проверьте заново, что и как.

Ну я же уже говорил, что tmpfs — это часть эксперимента, и он здесь нужен, чтобы занять чем-то память и создать условия, аналогичные запуску ld при сборке firefox. Но аналогичные условия всё равно не получаются, потому что в этом случае надо ещё и делать случайный доступ к этой занятой памяти, как это делает ld, а не просто однократно её занять. В реальных условиях сборки firefox у меня, естественно, ничего лишнего в tmpfs не лежит, всё по максимуму вынимаю из оперативной памяти.

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

не эквивалент
ld будет писать в разы медленнее, чем dd
потому очень даже годно
давно бы уже мог и собрать и проверить в реальных условиях
прекращай флудить

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