jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

в винде мб есть способы лениво аллоцировать огромные буферы, через хаки вроде того что с memfd на линуксе

Читать полностью…

pro.jvm

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

Читать полностью…

pro.jvm

если выключить оверкоммитинг, то да, mmap будет действительно резервировать

и соответственно терабайт аллоцировать уже не выйдет

Читать полностью…

pro.jvm

вы понимаете что спорите о значении слова резерв и каждый понимает это по своему?

Читать полностью…

pro.jvm

Я хз как сейчас, но лет 10 назад при большом кол-ве тредов и ненастроенном Xss точно возникал OOM.
А после настройки Xss исчезал (Linux, Oracle JDK)

Читать полностью…

pro.jvm

там сама jvm eagain превращает в свой oom

Читать полностью…

pro.jvm

см. res в том скриншоте, который я приводил

Читать полностью…

pro.jvm

это разве не называется резерв? просто os тебя немного обманывает(но вроде как память тебе обещали)

Читать полностью…

pro.jvm

ага а почему у меня OOM при создании кучи тредов были?

Читать полностью…

pro.jvm

https://blogs.oracle.com/javamagazine/post/java-virtual-threads

Читать полностью…

pro.jvm

нигде он не резервирует ничего

Читать полностью…

pro.jvm

резервирует, просто не в хипе ))

Читать полностью…

pro.jvm

Платформенный не резервирует 1мб

Читать полностью…

pro.jvm

Только это платформенный создается с 1 мб, а виртуальный нет

Читать полностью…

pro.jvm

с каким-нибудь жуком вполне 0.5Mb

Читать полностью…

pro.jvm

я не знал что винда так не умеет, думал стандартная механика

Читать полностью…

pro.jvm

...но кто в этой дискуссии вообще про него знал до этого момента?

Читать полностью…

pro.jvm

Ещё смотрите какая история

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                
122552 <user> 20 0 11.9g 4.0g 1.2g S 5.5 12.8 10:25.86 idea
122757 <user> 20 0 13.6g 1.1g 51200 S 0.0 3.4 2:38.77 java
4052 root 20 0 13.4g 914972 14052 S 0.0 2.8 2:15.81 java
5642 <user> 20 0 6393844 779456 88892 S 3.6 2.4 17:46.18 jetbrains-toolb
7020 root 20 0 13.7g 693232 12864 S 0.0 2.1 3:22.60 java
4113 999 20 0 2240100 676052 37200 S 0.5 2.1 23:58.94 java


У меня только 32 гига оперативы. Эта история с джава-приложениями на гигабайты виртуальной и минимум резидентной памяти настолько древняя, что я другой и не застал.

Читать полностью…

pro.jvm

что он там резервирует при аллокации терабайта?

Читать полностью…

pro.jvm

void* buf = malloc(999999999999);
printf("%p\n", buf);

Читать полностью…

pro.jvm

точно оом а не eagain?

Читать полностью…

pro.jvm

For JVM processes running on Linux x64, the default stack size is 1 MB, and this space is reserved by the OS each time you launch a new thread. This makes the math pretty simple. For example, 2,000 threads means that 20 GB of stack space needs to be reserved.

Читать полностью…

pro.jvm

он запрашивает, а не резервирует, пока вы только не начали специально ОС подкручивать

Читать полностью…

pro.jvm

ты можешь на линуксе маллокнуть 100 терабайт

Читать полностью…

pro.jvm

Разница по выделению памяти между нативным и виртуальным исключительно в гранулярности

Читать полностью…

pro.jvm

на винде кстати мб резервирует, там же оверкоммитинга нет

Читать полностью…

pro.jvm

И я точно помню, что читал, что жвм сама динамически размером стэка для виртуальных управляет

Читать полностью…

pro.jvm

платформенный стек не в хипе

Читать полностью…

pro.jvm

1мб - это один из классических лимитов. Тебе в любом случае нужно установить верхнюю планку, и резервировать сразу по ней довольно глупо.

Читать полностью…

pro.jvm

ну не мегабайт же
даже не близко ведь, вроде...?

Читать полностью…
Subscribe to a channel