Частая компиляция и жизнь винта

Задался я следующим вопросом, если я практичесски каждый день компилирую чтонибудь на сервере (делаю сборки под разные ПК, обнавляю сам сервер, пробую новые программы и т.д. и т.п.) тоесть сервер всевремя мучает винт emerge-м насколько я могу судить это не самым лучшим образом сказывается на "здоровье" винта, так ли это?

У кого какие мысли по этому поводу?
А ещё лучще обоснованное мнение.

Собтственно у меня возникла мысль, а можно ли организовать раздел в ОЗУ ну скажем размером в 4-5Гб чтобы использовать его как tmp директорию для portage. Скажу честно я ещё ничего не искал на эту тематику, может кто то поделится толковой инструкцией, и/или личным опытом.

-----------------------------------

В общем результат следующий:
в fstab добавил

tmpfs			/home/tmp 	tmpfs		defaults,size=5G,nr_inodes=1M,mode=0700	0 0

nr_inodes=1M меньшего значения приводил к обваливанию компиляции gcc могу предположить что ещё какие-то пакеты могут вести себя подобным образом.

С использованием указанного раздела не собрался libreoffice при конфигурирование потребовал размер tmp не менее 9Гб, всего у меня памяти сейчас установлено 8Гб, поэтому собирал на винте.

Субьективно прироста производительности я не наблюдаю, но надеюсь это позволит прожить винту чуть дольше предидущего :)

Как и любой вещи(особенно с

Как и любой вещи(особенно с механикой) юзанье ее портит, но в случае винча можно об этом не задумываться. НО наблюдение за SMART и создание бэкапов все равно необходимо.

почитайте про tmpfs

В целом я согласен :) но по

В целом я согласен :) но по факту могу сказать что блековый винт от WD в таком режиме пропработал всего год, и стал сыпаться именно в том разделе который использовался для tmp portage так что задумываться всеже приходится, хотя я пока немогу найти подтверждения что причиной был имеено режим эксплуатации.

Насчет tmpfs спасибо это судя по всему именно то что мне нужно

я новичок и

возможно, плохо понимаю принципы работы системы с памятью, но неужели кеширование данных с жесткого диска в оперативной памяти не делает использование tmpfs бессмысленным?

может, имеет смысл просто поиграть с параметрами монтирования раздела?

Для чтения - да, для записи

Для чтения - да, для записи -- нет, не в этом сценарии.

Часто бывает, что на

Часто бывает, что на распаковку/конфигурирование пакета уходит больше времени (или соразмерно), чем на собственно компиляцию. И tmpfs помогает.

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Только WD еще ни о чем не

Только WD еще ни о чем не говорит - надо смотреть по моделям. У них есть и диски для интенсивной работы, и модели с пластмассовыми (!) подшипниками, которые через год работы на сервере просто рассыпались... :)

Не надо надеяться, что копеечный диск прослужит вечность. SMART-мониторинг с установленным автотестированием на Линуксовых машинах делается очень просто и должен быть обязателен для грамотной эксплуатации, если не хотите себе проблем.

Ежели речь идет о

Ежели речь идет о терабайтниках и выше - то тут WD выпустило весьма сырую и неудачную (ИМХО) вещь. Там используется Adwanced Format , на контроллере винта мутят с кластерами аки хотят. То, что видно снаружи - чистая эмуляция. Настоятельно рекомендуется использовать выравнивание разделов. В нашей конторе втечение года упал пяток гринов от WD, и с гентой это никак не связано.

По факту же, могу сказать что имею раздел с хомами 200 винюзеров, со средним проценом утилизации IO около 60. Винты ( в рейде ессно ) держатся шестой год и (судя по показаниям smart) не скрипят.

tmpfs же

#!/bin/bash
MEMSIZE=1700M
mounted=false
. /etc/init.d/functions.sh
mounttmpfs() {
mount -t tmpfs tmpfs -o size=$MEMSIZE /var/tmp/portage
mounted="true"
}
compile() {
einfo "emerging ${*}"
emerge ${*}
}
unmount() {
ebegin "unmounting tmpfs"
umount -f /var/tmp/portage
eend $?
}
ebegin "Mounting $MEMSIZE of memory to /var/tmp/portage"
if [ -z "$(mount | grep /var/tmp/portage)" ]
then
mounttmpfs
else
eerror "tmpfs already mounted!"
exit 0
fi
eend $?
compile ${*}
if [ -n "$mounted" ]
then
unmount
fi

назвать как душе угодно и вместо emerge вызывать что_душе_угодно
размер подогнать

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

Зачем такие выкрутасы, можно

Зачем такие выкрутасы, можно просто в /etc/fstab указать монтировать на /var/tmp/portage tmpfs (/dev/shm), в опциях монтирования указать максимальный размер выделения памяти?

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

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

ппц

а теперь попробуй собрать 3 версии гцц (обновление мира, оха) даже в 6.3 гигах рамы, отведённых под tmpfs и в 1.7 гигах оставшейся
потом приходи
по одному пакету собирать даже не предлагай
про fstab я отлично знаю и использую

testio /home/megabaks/testio tmpfs size=8000M,noauto,users,exec 0 0
tmpfs /var/run tmpfs defaults,nodev,nosuid,noexec,mode=0755,size=10m 0 0
tmpfs /var/lock tmpfs defaults,nodev,nosuid,noexec,mode=1777,size=10m 0 0

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

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

надо бы развивать

Кстати многое с твоего блога себе перетянул, спасибо.

Есть идея по автоматизации сборки больших пакетов на винте а не в tmpfs, реализуемая как мне видится двумя способами:
1. В твоем скрипте - парсингом собираемых пакетов в строке emerge и запуском emerge дважды:
- с tmpfs - для всех небольших пакетов из задания
- без tmpfs (после umount) - на винте - для всяких firefox, libreoffice и иже с ними

2. аналогичное - через /etc/portage/bashrc - с анализом что за пакет и соответствующим (не)применением tmpfs для его сборки.
Список пакетов хранить где-нить в /etc/portage/no_tmpfs

анализировать подключен ли /var/tmp/portage в RAM например через df -h - там же и его размер брать для последующего перемонтирования...

и еще одно соображение... неплохо бы анализировать в скрипте случаи, когда компиляция заканчивается ошибкой и не размонтировать /var/portage/tmp, дабы по-надобности - глянуть логи, попатчить и т.п.
(все imho)

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

у меня есть похожая мысля

но реализация несколько проще
костыль в bashrc
список гигантов в package.notmpfs
и для них диру сборки менять на /var/tmp/portage_notmpfs, например
но это надо проверить - не знаю просто, сработает ли дира для отдельного пакета, или это ro переменная или просто глобальная

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

Цитата: а теперь попробуй

Цитата:
а теперь попробуй собрать 3 версии гцц (обновление мира, оха) даже в 6.3 гигах рамы, отведённых под tmpfs и в 1.7 гигах оставшейся
потом приходи

Зачем тебе 3 версии gcc, я понимаю одна версия gcc-3.X которая не обновляется, для сборки чего-либо старого и одна версия gcc-4.X, которая обновляется (требуется 1,5-1,7 Гб).

Цитата:
хоть бы подпись посмотрел, прежде чем писать такие очевидные вещи...

И что посмотрел, вижу. Тебе что писать нельзя или у тебя мания величия ?

про версии

побуду кэпом, так и пыть, снизойду :3
куда - одна версия умеет только 4.5 или ниже
другая только 4.4 и ниже
первогруб на 32 с 4.6 собираецо, но не работает
так же кто-то тут писал, что овер мой костыль таки смог собрать кеды3 в системе со свежим гцц в роли текущего
короче - зри в корень, но не забывай башкой мотать иногда для расширения кругозора || грозит близорукостью

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

megabaks написал(а): так и

megabaks написал(а):
так и пыть, снизойду

Смотри не упади.

Цитата:
первогруб на 32 с 4.6 собираецо, но не работает

Специально для тебя поставил отдельно gcc-4.6.2, переключился на него и пересобрал grub-0.97-r10, установил на флешку, работает, ради теста запустил memtest., так что ты ошибся, твои сведения не верны.

megabaks написал(а):
что овер мой костыль таки смог собрать кеды3 в системе со свежим гцц в роли текущего

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

Я собирал gcc-4.6.2 в 2 Гб tmpfs, собралось, выделение памяти максимум было в районе 1,7-1,8 Гб под tmpfs, так что при 6,3 Гб tmpfs ты сможешь собрать 3 версии gcc одновременно, только смысла в этом не вижу, оха.

megabaks написал(а):
короче - зри в корень, но не забывай башкой мотать иногда для расширения кругозора || грозит близорукостью

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

мда...

Цитата:
Специально для тебя поставил отдельно gcc-4.6.2, переключился на него и пересобрал grub-0.97-r10, установил на флешку, работает, ради теста запустил memtest., так что ты ошибся, твои сведения не верны.

специально для тебя - ты не той версией пробовал
я пробовал с 4.6.1 когда 4.6.2 ещё не было

Цитата:
твои сведения не верны.

а за это можно и по ушам получить

Цитата:
пусть даже, возможно придётся подправить исходники

а теперь осиль понятие удобства - это раз
как ты собрался править cuda для совместимости с 4.6?
и вообще - править исходники вместо простого

echo "категория/пакет 4.4" >> file

разупорина прими и больше не пиши такую чушь

Цитата:
так что при 6,3 Гб tmpfs ты сможешь собрать 3 версии gcc одновременно, только смысла в этом не вижу, оха.

ты точно неадекват!
короче, мне просто жаль потраченного на тебя времени, с такими неадекватами разговаривать не о чем
разговор окончен

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

Цитата: специально для тебя

Цитата:
специально для тебя - ты не той версией пробовал
я пробовал с 4.6.1 когда 4.6.2 ещё не было

Ты сказал 4.6 я попробовал последнюю - собралось и работает, конкретную версию ты не указал, так что не че говорить что я не прав. Не прав - ты.

Цитата:
а за это можно и по ушам получить

Ну как ребёнок, ё-мое, ты был не прав, я указал на это выше.

Цитата:
и вообще - править исходники вместо простого

echo "категория/пакет 4.4" >> file

Я этого не отритцаю, но вот скажи ты каждый раз пересобираешь сразу 3 версии gcc, от силы одну - две.

Цитата:
разупорина прими и больше не пиши такую чушь

Мы же цивилизованные люди, зачем ты переходишь на оскорбления, эх дитё.

Цитата:
ты точно неадекват!
короче, мне просто жаль потраченного на тебя времени, с такими неадекватами разговаривать не о чем
разговор окончен

Про 6.3 Гб tmpfs я тебе привёл пример, т.к. ты сам об этом упомянул, по сути на компе с 8 Гб Ram выделить такой объём под tmpfs ничего не стоит, да у меня есть столько оперативки.
По поводу твоего времени, раз ты постоянно находишься на этом форуме или на LoR у тебя его много.

На последний мой комментарий в предыдущем сообщении ты не ответил.

Megabaks, если не можешь нормально изъясняться, то лучше вообще ничего не пиши.

[censored]

Цитата:
Ты сказал 4.6 я попробовал последнюю

а надо было уточнить, не?
раз собрался тесты делать - я ещё и не прав, лол

Цитата:
вот скажи ты каждый раз пересобираешь сразу 3 версии gcc

это был просто пример, или ты даже этого понять не в состоянии?

Цитата:
Я этого не отритцаю

перечитай свой пост - там как раз отрицание этого костыля и сомнения в его нужности
разупорись уже
я могу нормально изъясняться, но только с нормальными адекватными людьми, в число которых ты пока не входишь
ты от поста к посту меняешь мнение - о каком разговоре речь тогда!?
а вот это

Цитата:
если софт можно собрать с определённой версией компилятора, он соберётся, пусть даже, возможно придётся подправить исходники, если нельзя то твой костыль не поможет.

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

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

kostik87 написал(а): По

kostik87 написал(а):
По поводу твоего времени, раз ты постоянно находишься на этом форуме или на LoR у тебя его много.

я его проведу бОльшей пользой, нежели общаясь с тобой
кстати, дай ник на лоре - подружусь там с тобой
не хватало ещё и там твоего бреда

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

По осторожнее на поворотах

megabaks написал(а):
kostik87 написал(а):
твои сведения не верны.

а за это можно и по ушам получить

megabaks написал(а):
разупорина прими и больше не пиши такую чушь

megabaks написал(а):
ты точно неадекват!
короче, мне просто жаль потраченного на тебя времени, с такими неадекватами разговаривать не о чем
разговор окончен

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

Неспособность аргументированно доказать свою точку зрения и переход на личности, намекает на отсутствие этих самых аргументов. Ты не на ЛОРе или опеннете, здесь нормальная комманда модераторов.

костик правильно сказал,

evadim правильно сделал, всегда надо быть ближе к народу) Молодцы ребята! А вообще давайте жить дружно (кот Леопольд)

fstab:tmpfs /tmp tmpfs

fstab:
tmpfs  /tmp    tmpfs    defaults,nodev,nosuid       0 0
make.conf:
PORTAGE_TMPDIR="/tmp"

можно конечно изъ@ся на тему крутяцких скриптов на баше но зачем?
хотя....каждому свое...

.

valek2282 написал(а):
fstab:
tmpfs  /tmp    tmpfs    defaults,nodev,nosuid       0 0
make.conf:
PORTAGE_TMPDIR="/tmp"

можно конечно изъ@ся на тему крутяцких скриптов на баше но зачем?
хотя....каждому свое...

Динамический размер?
Интересно...

:wq
--
Live free or die

что не так? просто 6 гигов

что не так? просто 6 гигов оперативы вроде хватает ну можно добавить blksize=4096

Динамический размер плохо. :

Динамический размер плохо. : ) Особенно когда произойдёт регрессия при компиляции.

/

vitek написал(а):
Задался я следующим вопросом, если я практичесски каждый день компилирую чтонибудь на сервере (делаю сборки под разные ПК, обнавляю сам сервер, пробую новые программы и т.д. и т.п.) тоесть сервер всевремя мучает винт emerge-м насколько я могу судить это не самым лучшим образом сказывается на "здоровье" винта, так ли это?

Существенно зависит от типа жёсткого диска.

vitek написал(а):
Собтственно у меня возникла мысль, а можно ли организовать раздел в ОЗУ ну скажем размером в 4-5Гб чтобы использовать его как tmp директорию для portage. Скажу честно я ещё ничего не искал на эту тематику, может кто то поделится толковой инструкцией, и/или личным опытом.

Если это сервер (Опен Офисы не собираются), то можно просто смонтировать /var/tmp/portage (в размере порядка 4 гигов) в оперативную память и не париться.

:wq
--
Live free or die

В том то и дело что на этой

В том то и дело что на этой машине я подготавливаю stage4 для десктопов тоесть собираются довольно большие пакеты включая Libreoffice почитал пару статеет по tmpfs говорят что 3,5 гигов должно хватить для сборки OpenOffice думаю для Libre это тоже справедливо, буду пробовать.

если не хватит он сразу на

если не хватит он сразу на этапе конфигурации ругнется и остановит процесс сборки

Это хорошо. Кстати говоря при

Это хорошо. Кстати говоря при монтировании tmpfs также стоит уделить внимание inodes при слишком маленьком значении компиляция останавливается в некоторых местах с руганью на недостаток места пока меня устроил параметр nr_inodes=1M

незнал, спасибо за инфу

незнал, спасибо за инфу

Хех. У меня он перед

Хех. У меня он перед конфигурацией бросал предупреждение, что нужно 9Гб ОЗУ, хотя свободной было ~4.5 и продолжил конфигурировать и собирать и на финальных этапах комп бросил предупреждение, что ЖД закончился и установка прекратилась.

Не хватит, он может 6-7Гб

Не хватит, он может 6-7Гб захавать.

В общем результат

В общем результат следующий:
в fstab добавил

tmpfs			/home/tmp 	tmpfs		defaults,size=5G,nr_inodes=1M,mode=0700	0 0

nr_inodes=1M меньшего значения приводил к обваливанию компиляции gcc могу предположить что ещё какие-то пакеты могут вести себя подобным образом.

С использованием указанного раздела не собрался libreoffice при конфигурирование потребовал размер tmp не менее 9Гб, всего у меня памяти сейчас установлено 8Гб, поэтому собирал на винте.

Субьективно прироста производительности я не наблюдаю, но надеюсь это позволит прожить винту чуть дольше предидущего :)

vitek написал(а): В общем

vitek написал(а):
В общем результат следующий:
в fstab добавил

tmpfs			/home/tmp 	tmpfs		defaults,size=5G,nr_inodes=1M,mode=0700	0 0

nr_inodes=1M меньшего значения приводил к обваливанию компиляции gcc могу предположить что ещё какие-то пакеты могут вести себя подобным образом.

Интересный тезис.
Спасибо за выделение ньюанса.

Без указания в списке опций числа инодов на 4 гиговом разделе у меня их как раз порядка одного миллиона. amd64.

:wq
--
Live free or die

интересные мнения здесь, но

интересные мнения здесь, но лучше перейти на freebsd.

BSD спасет вас от массивных повреждения жесткого диска. Принцип работы hdd в Unix абсолютно отличается от любого дистрибутива Linux.

Я использую Gentoo, потому что он основан на BSD и потому что он очень продуктивен, но есть и маленькие недостатки, например, максимальное использование жесткого диска во время компиляции

root2 написал(а): BSD спасет

root2 написал(а):
BSD спасет вас от массивных повреждения жесткого диска. Принцип работы hdd в Unix абсолютно отличается от любого дистрибутива Linux.

Щито?

Цитата:
Я использую Gentoo, потому что он основан на BSD

Щито?

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

Типа

Типа так:

/etc/portage/bashrc:
if [[ "$CATEGORY/${PN}" = "media-gfx/inkscape" ]]; then
    export CFLAGS="-pipe -O3 -march=amdfam10 -mtune=amdfam10 -mfpmath=sse -frename-registers -ftree-vectorize -finline-functions -msse4a -mno-ssse3 -m3dnow -msse2"
    export CXXFLAGS="${CFLAGS} -finline-limit=1000 -fpermissive"
    export что-то еще для этого пакета
fi

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Это вот к чему?

Это вот к чему?

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

Уже забыли предмет

Уже забыли предмет обсуждения? :)
В процессе обсуждения пришли к вопросу, как АВТОМАТИЗИРОВАТЬ измнение PORTAGE_TMPDIR для КОНКРЕТНЫХ пакетов. Этим методом можно автоматизировать зменение и других переменных, не только TMPDIR. Можно делать что угодно, причем средствами emerge/ebuild не вмешваясь при этом в их работу.

emerge заглядывает в /etc/portage/bashrc, если там присутствует собираемый пакет, выполняются команды (до сборки пакета). После сборки данного конкретного пакета все изменные переменные восстанавливаются. POP/PUSH переменные окружения. При этом не надо писать велосипеды (один из камменов).

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Aladdin написал(а): Уже

Aladdin написал(а):
Уже забыли предмет обсуждения? :)
В процессе обсуждения пришли к вопросу, как АВТОМАТИЗИРОВАТЬ измнение PORTAGE_TMPDIR для КОНКРЕТНЫХ пакетов.

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

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

тогда почему бы модераторам

тогда почему бы модераторам не остановить обсуждение? типа, ушло в сторону, по вашему мнению. А по-моему, не ушло. Просто появилось решение, как заюзать гигабайты РАМы с минимумом костылей.

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Вот и отвечать надо на то

Вот и отвечать надо на то сообщение, где речь шла про tmpfs

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

Ну, теперь-то точно на мой

Ну, теперь-то точно на мой ответ обратили внимание :)

P.S.: Linux - это красная таблетка :-) Windows - синяя...

.

krigstask написал(а):
Вот и отвечать надо на то сообщение, где речь шла про tmpfs

Открою страшную тайну: не все читают форум в древовидном представлении.
Только тс-с-с... Никому не говори об этом! :)

:wq
--
Live free or die

Задался я следующим вопросом,

Задался я следующим вопросом, если я практичесски каждый день компилирую чтонибудь на сервере (делаю сборки под разные ПК, обнавляю сам сервер, пробую новые программы и т.д. и т.п.) тоесть сервер всевремя мучает винт emerge-м насколько я могу судить это не самым лучшим образом сказывается на "здоровье" винта, так ли это?

Все как бы элементарно просто:
1) ресурс SSD ограничивается по кол-ву записи в яэейки
2) ресурс мехнических HDD ( в случае вменяемых винтов) ограничен скорее кол-вом циклов start/stop, чем временем записи/чтения.

Вывод - все фигня, винты для того и есть, что бы на них писать

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

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

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