Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: yavorpap в Dec 04, 2008, 17:31



Титла: Памет
Публикувано от: yavorpap в Dec 04, 2008, 17:31
Здравейте,
Ползвам Xubuntu за да подкарам програма, за която не е ясно какви ресурси ще са необходими.
Със сигурност знам, че 2-та ГБ РАМ, които имам не са достатъчни. Имам над 100ГБ свободен хард, 90ГБ swap partition, разцепен на 2 - 64ГБ + 26ГБ, но въпреки това програмата ми дава:
std::bad_alloc
swap-ът е почти празен и изглежда не се ползва почти никак. Задал съм swappiness 100. Какво друго мога да направя?


Титла: Re: Памет
Публикувано от: tarator в Dec 04, 2008, 17:52
Оправи програмата. Ако не й стигат 2ГБ, значи е счупена :)


Титла: Re: Памет
Публикувано от: yavorpap в Dec 04, 2008, 19:06
Програмата е наред, направена е да работи така и така е очакваното поведение... за оптимизация на алгоритъма откъм памет едва ли може да става дума в такива размери


Титла: Re: Памет
Публикувано от: tarator в Dec 04, 2008, 20:19
И колко памет иска програмата? Всеки програмист, който прави програма, която очаква суап за да работи, трябва да бъде изритан и името му публикувано в Интернет за да не го наема никой друг :)


Титла: Re: Памет
Публикувано от: yavorpap в Dec 04, 2008, 22:44
Програмата е с изследователска цел, а не с цел да се използва масово; целта е ВЕДНЪЖ да проработи, след което вече няма значение...


Титла: Re: Памет
Публикувано от: tarator в Dec 04, 2008, 23:33
Е, очевидно не работи :) И аз пиша изследователски програми, но не са им нужни десетки гигабайти памет. Тук има хора, чиито програми използват петабайти данни, но си работят нормално с по-малко от 2ГБ :)

Просто кажи на програмиста да се научи да пише грамотно, ще му е от полза.


Титла: Re: Памет
Публикувано от: gat3way в Dec 04, 2008, 23:46
Явно въпросният програмист много обича да прекалява с mlock() :) Иначе няма друго достоверно обяснение на тези дивотии :)


Титла: Re: Памет
Публикувано от: tarator в Dec 05, 2008, 00:29
Съмнявам се, че знае какво е mlock, иначе не би написал програмата толкова идиотски :)
Аз бих предположил, че някой се опитва да използва програмата на 32-битова машина :)


Титла: Re: Памет
Публикувано от: Gaara в Dec 05, 2008, 11:59
Здравейте,
Ползвам Xubuntu за да подкарам програма, за която не е ясно какви ресурси ще са необходими.
Със сигурност знам, че 2-та ГБ РАМ, които имам не са достатъчни. Имам над 100ГБ свободен хард, 90ГБ swap partition, разцепен на 2 - 64ГБ + 26ГБ, но въпреки това програмата ми дава:
std::bad_alloc
swap-ът е почти празен и изглежда не се ползва почти никак. Задал съм swappiness 100. Какво друго мога да направя?

Може ли само да попитам за 90ГБ swap?
Честно, за първи път виждам такова нещо и не знам каква му е идеята :(


Титла: Re: Памет
Публикувано от: Genetix в Dec 05, 2008, 23:27
Оправи програмата. Ако не й стигат 2ГБ, значи е счупена :)

За какво им са на хората супер компютри щом на всяка програма дето не и стигат 2 ГБ рам е счупена

направи си извода


Титла: Re: Памет
Публикувано от: laskov в Dec 05, 2008, 23:47
За какво им са на хората супер компютри щом на всяка програма дето не и стигат 2 ГБ рам е счупена
направи си извода
Аз пък ще си направя суапа 218 гб и ще си направя компютъра супер, и с 2-та рам ще станат 220 .... и-и-и ще си включа печката в него!


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 00:03
Genetix,

Не знаеш нищо за суперкомпютрите освен че са супер, нали? :) Я кажи на кой от суперкомпютрите от Top500, node-овете има повече от, да кажем 8GB памет? :) RoadRunner (No. 1) има 8ГБ на Оптероните и 8ГБ на Cell blade-овете. Jaguar (No. 2) има 8ГБ на node. BG/P-тата имат по 2ГБ.

Суперкомпютрите се състоят от много, сравнително слаби компютри.


Титла: Re: Памет
Публикувано от: gat3way в Dec 06, 2008, 00:14
Ако наистина имаш машина с 2 гигабайта рам и 200 гигабайта суоп и наистина вземеш че утилизираш суоп-а на близо 100%, значи само от тези 2 гигабайта оперативна памет ще ти заминат около 200 мегабайта за pagetables (или около 400 мегабайта ако ползваш PAE). Голяма красота, това ще е уникална система - такава, на която 20% от оперативната й памет отиват за нуждите на транслация на виртуални адреси от процесора. Това е случай, за който ме съмнява дори разните големи глави някога да им е хрумвало, звучи забавно :) Разните системни архитекти при това положение могат да решат, че TLB кеша е безсмислено скъпо удоволствие - така или иначе достъпването на по-голямата част от виртуалните адреси ще завършва с page fault и вадене на страници от суоп-а.


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 00:25
Все пак зависи какъв ти е access pattern-а, има варианти при които TLB кеша все пак ще помага :)


Титла: Re: Памет
Публикувано от: gat3way в Dec 06, 2008, 00:36
Мхм, обаче има и друг проблем. Няма да остане процесорно време от хищното kswapd :)


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 00:40
Мда, затова казвам, че всеки който разчита на суап е малоумен :)


П.П. Преувеличавам разбира се, но само малко. :)


Титла: Re: Памет
Публикувано от: yavorpap в Dec 06, 2008, 02:00
Нямам друг избор освен да ползвам swap. Точно това е питането - как да накарам линукса да използва swap-а, вместо програмата да изгаря... Отворен съм към предложения :)


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 02:03
yavorpap,

Провери дали не ти е 32-битов Линукса.


Титла: Re: Памет
Публикувано от: Genetix в Dec 06, 2008, 02:24
Genetix,

Не знаеш нищо за суперкомпютрите освен че са супер, нали? :) Я кажи на кой от суперкомпютрите от Top500, node-овете има повече от, да кажем 8GB памет? :) RoadRunner (No. 1) има 8ГБ на Оптероните и 8ГБ на Cell blade-овете. Jaguar (No. 2) има 8ГБ на node. BG/P-тата имат по 2ГБ.

Суперкомпютрите се състоят от много, сравнително слаби компютри.

Хайде сега да си мерим пишките е моята е по-голяма от твоята но няма да ти направя удоволствието да е видиш ;)
Идеята беше, че не знае за каква програма става въпрос а въпреки всичко казва, че не работи прибързано решение обосновано на никакви факти. Има различни по сложност задачи точно за това се налагат по-мощни и мощни компютри, докато нашият брат си мисли, че програма на която не и стигат 2ГБ РАМ тя просто не работи не разсъждава добре предвид напредването на технологиите и информатиката в дадени аспекти.


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 03:00
Genetix,

За разлика от теб, на мен работата ми е да се занимавам със суперкомпютри. На визитката ми пише computer science research for high performance computing. И не говоря наизуст, а от личен опит. Какво можело или какво си чел във вестник 24 часа, не ме интересува. Мери си пишката с някой от твоята категория :)

Суперкомпютрите смятат бързо не защото имат много памет, а защото програмистите знаят как да използват наличната памет, дори оптимизират за съответните размери на всички нива кеш. Много ще ми е интересно как ще бъде пусната такава една програма дето иска 80ГБ суоп на "суперкомпютър" след като повечето от тях са без дискове. Суопа на паралелната файлова система ли ще го сложиш? :)


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 04:00
gat3way, ако някой пише програма, която използва 200ГБ памет, би било за препоръчване поне да знае за hugetlb :)


Титла: Re: Памет
Публикувано от: gat3way в Dec 06, 2008, 10:31
Мога само да гадая, защото никога не съм ръчкал машина, която да ползва PSE (това де - големите страници там). Не ми се е налагало де. Със сигурност доста по-малко оперативна памет ще отива за page tables. Обаче според мен ще има един друг проблем - ако преди е трябвало да се swapin-ва една 4-килобайтова страница от диска, сега трябва същото да стане с 4-мегабайтова такава. Същото и с kswapd - ще трябва да изписва върху суопа доста повече. Поне така вярвам, че би трябвало да бъде, дупе да му е яко на диска :)


Титла: Re: Памет
Публикувано от: tarator в Dec 06, 2008, 18:26
И аз си го мислех това, но все пак писането на 4MB последователно е много по-бързо от писането на (например) 256х4К страници навсякъде по суопа. Не мисля, че някой  използв hugetlb и суоп едновременно, просто няма никакъв смисъл.


Титла: Re: Памет
Публикувано от: gat3way в Dec 06, 2008, 19:11
Мда, както ти каза обаче си зависи от access pattern-a. В смисъл ако се изкарва цяла страница, за да се достъпят само няколко байта от нея, после същата отново отива на диска, става грубо :)


Титла: Re: Памет
Публикувано от: yavorpap в Dec 07, 2008, 00:18
yavorpap,

Провери дали не ти е 32-битов Линукса.

Благодаря много, наистина беше 32 бита; преинсталирах с 64 битов и сега изглежда всичко е наред :)