LINUX.ORG.RU
ulimit -s unlimited
ulimit -d unlimited
ulimit -m unlimited
сделал.
Artem-Dnepr
() автор топика
Ответ на: комментарий от Boy_from_Jungle
Памяти дофига. Да и какая разница сколько памяти, если я хочу выделить виртуальную, которую я могу сколько угодно выделить. Вот когда я захочу туда записать что-то вот тогда тормоза и начнуться.

Я точно помню, что год назад я мог выделять сколько угодно.
Artem-Dnepr
() автор топика
Ответ на: комментарий от kto_tama
> вроде как есть ограничение - не более 2 гигов на процесс

Где есть? Как безобразие отключить?
Artem-Dnepr
() автор топика
Ответ на: комментарий от kto_tama
В x86_64 есть. Профит очевиден: 780k+ страниц vs 1k5.
mv ★★★★★
()
Ответ на: комментарий от Artem-Dnepr
> Проц - I7 так что ММУ там уж точно есть.

Если твоей программе столько памяти нужно, предусмотри поддержку hugetlbfs. Реально быстрей ворочаться будет. Читать Documentation/vm/hugetlbpage.txt
mv ★★★★★
()

как выделяешь? система точно x86_64?

вот такое у меня работает

#include <stdio.h>
#include <stdlib.h>

int main()
{
        char * p = malloc(4L * 1073741824L);
        getchar();
}

Reset ★★★★★
()
Ответ на: комментарий от mv
Идиотский совет. Вначале надо разобраться почему оно вообще не работает, а потом, если приспичит, заниматься оптимизацией.
Reset ★★★★★
()
Ответ на: комментарий от Reset
> Идиотский совет. Вначале надо разобраться почему оно вообще не работает, а потом, если приспичит, заниматься оптимизацией.

Спасибо, КО. malloc(3G) тоже очень умно.
mv ★★★★★
()
Ответ на: комментарий от bibi
> Мммм... А как тогда, допустим, тот же mysqld кушает у меня под 16Gb с гаком без всяких hugetlbfs :-?

Потому что я не говорил, что для работы с дофига памяти НУЖЕН hugetlb.
mv ★★★★★
()
Ответ на: комментарий от mv
hugetlb не хочется использовать, потому что хочется в разумных пределах сохранить портабельность.
Artem-Dnepr
() автор топика
Ответ на: комментарий от ratatosk
#include <stdio.h>
#include <stdlib.h>

int main()
{
        char * p = malloc (4L * 1073741824L);
        printf("%p\n", p);
        getchar();
}
$ ./a.out
0x7f29894d3010

$ ps axvm | grep a.out
15974 pts/1    -      0:00      0     1 4197998 448  0.0 ./a.out
Reset ★★★★★
()
Ответ на: комментарий от Artem-Dnepr
Думаю надо выяснить как собрано ядро.
Reset ★★★★★
()
если ядро 3/1 G, то куда же может malloc смапить 3G, если кроме кучи есть код, стек, библиотеки итд ? нет свободных адресов на 3G
gavv
()
Ответ на: комментарий от Artem-Dnepr
Можно настроить vm так, чтобы выделение всё равно происходило, даже если физической памяти нет. Но в этом случае, если ты займешь всю физическую память, случится страшный песец и придется жать на reset :)
Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.