powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выделение памяти в линуксах.
39 сообщений из 39, показаны все 2 страниц
Выделение памяти в линуксах.
    #36365926
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется наиболее полно задать вопрос, но буду нудно подходить с нескольких сторон.

1. Есть такая история, когда вы можете выделить памяти больше, чем вообще RAM. Свопа нет. То есть, как-то можно память так выделить, что система позволит застолбить больше, чем RAM, но что будет когда вы попытаетесь использовать всё выделенное я незнаю.

2. Есть ещё такая штука, как /proc/sys/vm/overcommit_memory - но допустим она равна 0, как по-умолчанию.

3. У меня была ситуация. Тут ещё надо сделать скидку, что я не представляю подробно, как себя ведёт то, что я тут буду упоминать. Я запускал несколько процессов java с ключом -Xmx1000M. Таких процессов запускал штук 5 на машине с 2 GB RAM и они успешно работали. Мне сказали, правда до меня не очень дошло (постижение природы этого явления и есть смысл этого поста), что java как-то так выделяет этот гиг памяти, что пять таких процессов прекрасно работают на 2GB RAM.

Ситуация в том, что мне дали OpenVZ - виртуалку (VPS), память = 3.5GB, свопа нет. Я обломался запустить там 5 процессов java -Xmx1000M. Ява говорила, что не может инициализировать VM. Или в некоторых местах падала, не могла выделить память. Или вела себя странно (странность в том, что не могла вызвать fork, чтобы выполнить команду "chmod", например, причина - памяти не хватало (ловятся исключения, в исключении говорится "cannot allocate memory"). Ok, сорри за лишни детали.

И вот объяснение одного человека, которое до меня не дошло:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
OpenVZ allows you to limit  6  different "kinds" of memory:
 
            lockedpages
            privvmpages
            shmpages
            physpages
            vmguarpages
            oomguarpages
 
What exactly to do limit? "privvmpages"? Have you checked OpenVZ bean
counters for processes hitting the limit in your VPSes?
 
Generally, if we won't go into the details, OpenVZ "privvmpages" and
having X megabytes of physical RAM in physical system is two very
different things. If you use "privvmpages", you effectively limit the
available address space of all processes inside VPS that they can
_allocate_. Java applications are fairly sensitive to this - if, for
example, you will run Java machines with -Xmx1024M in your "2.5GB RAM"
VPS, and it's really "2.5GB worth of privvmpages", you'd likely would
be able to run only  2  jvms: third one would fail mysteriously by
hitting the limit.

Я не понял смысла здесь: If you use "privvmpages", you effectively limit the
available address space of all processes inside VPS that they can
_allocate_
. (Если у тебя "privvmpages", то для всех процессов в твоей VPS ты обрезаешь адресное пространство, которое они могут выделять).

У меня не вяжется "пространство" и "выделять", ибо когда я выделяю память, я ничего не говорю о месте в пространстве, где я хочу выделить память, я сообщаю только количество байт.

Не дошло, короче. То есть, диагноз я понял - не взлетит, но механизм взлетания и невзлетани хотелось-бы понять.
Спасибо.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36365928
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напоминание и P.S.:

Там, где я запускал 5 процессов -Xmx1000M, свопа нет, только 2GB RAM. У меня даже получилось запустить эти 5 процессов в linux под VirtualBox с памятью 350MB.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366114
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай про Java Application Launcer . Обрати внимание на параметр -Xms
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366141
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mriadus wrote:

> 1. Есть такая история, когда вы можете выделить памяти больше, чем
> вообще RAM. Свопа нет. То есть, как-то можно память так выделить, что

Если свопа нет, то нельзя.

> система позволит застолбить больше, чем RAM, но что будет когда вы
> попытаетесь использовать всё выделенное я незнаю.

Будет защита памяти и крах программы.

> 3. У меня была ситуация. Тут ещё надо сделать скидку, что я не
> представляю подробно, как себя ведёт то, что я тут буду упоминать. Я
> запускал несколько процессов java с ключом -Xmx1000M. Таких процессов
> запускал штук 5 на машине с 2 GB RAM и они успешно работали. Мне
> сказали, правда до меня не очень дошло (постижение природы этого явления
> и есть смысл этого поста), что java как-то так выделяет этот гиг памяти,
> что пять таких процессов прекрасно работают на 2GB RAM.

Нет, просто любое приложение в LINUX (и Win32 тоже кстати) работает
в своём собственном адресном пространстве, 3Gb, если не ошибаюсь.
У одного приложения 3Gb, а все они физически располагаются
в одной и той же памяти, её, как известно, может быть максимум 4GB,
если в x86-32bit работа идёт. Всё, что не влазит, идёт в своп,
на диск, тот самый, который ты так не любишь почему-то. Если своп-файла
не будет, на всех суммарно будет 4Gb физ. памяти.

> Ситуация в том, что мне дали OpenVZ - виртуалку (VPS), память = 3.5GB,
> свопа нет. Я обломался запустить там 5 процессов java -Xmx1000M. Ява

Создавать своп надо. Своп можно отключить только если тебе хватит
ТОЛЬКО оперативки на все приложения.

> И вот объяснение одного человека, которое до меня не дошло:
>
> OpenVZ allows you to limit *6* different "kinds" of memory:

Это всё -- излишние подробности, тебе В ДАННОМ СЛУЧАЕ это
знать не обязательно.

> Не дошло, короче. То есть, диагноз я понял - не взлетит, но механизм
> взлетания и невзлетани хотелось-бы понять.

Своп-файл и виртуальная память.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366228
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему вы забили на то, что я пишу, как у меня прекрасно запускается 5 java -Xmx1000M без свопа на 2 GB RAM ?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366229
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы мне рассказываете общую теорию, не обращая внимания на ситуацию с двумя разными линуксами - настоящим и виртуальным, о которых я говорю. У меня нет свопа и там и тут, но на настоящем линуксе (2GB) запускается 5 java -Xmx1000M, на виртуальном OpenVZ не хочет.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366590
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зацените скриншот в следующем сообщении. В нём будет показана разница, между VIRT и RES. Свопа нет, но процессам позволяется выделить виртуальной памяти больше, чем есть физической.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366593
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366602
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скриншот - от невиртуального линукса.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36366860
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mriadus wrote:

> Вы мне рассказываете общую теорию, не обращая внимания на ситуацию с
> двумя разными линуксами - настоящим и виртуальным, о которых я говорю. У
> меня нет свопа и там и тут, но на настоящем линуксе (2GB) запускается 5
> java -Xmx1000M, на виртуальном OpenVZ не хочет.

Я ничего не знаю про виртуальный линукс.
Но подозреваю, что даже если внутри виртуального линукса нет
свопа, виртуальная машина может предоставлять своим приложениям
больше (или меньше) памяти, чем реальная оперативка, и
использовать свои механизмы, аналогичные свопу системы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36367139
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mriadusjava как-то так выделяет этот гиг памяти, что пять таких процессов прекрасно работают на 2GB RAM.

Ситуация в том, что мне дали OpenVZ - виртуалку (VPS), память = 3.5GB, свопа нет. Я обломался запустить там 5 процессов java -Xmx1000M. Ява говорила, что не может инициализировать VM. Или в некоторых местах падала, не могла выделить память. Или вела себя странно (странность в том, что не могла вызвать fork, чтобы выполнить команду "chmod", например, причина - памяти не хватало (ловятся исключения, в исключении говорится "cannot allocate memory"). Ok, сорри за лишни детали.
Ты можешь искусственно сымитировать ситуацию чтобы ошибка возникала сразу-же? И приведи тест который выдаёт стек исключений.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36367487
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonmriadusjava как-то так выделяет этот гиг памяти, что пять таких процессов прекрасно работают на 2GB RAM.

Ситуация в том, что мне дали OpenVZ - виртуалку (VPS), память = 3.5GB, свопа нет. Я обломался запустить там 5 процессов java -Xmx1000M. Ява говорила, что не может инициализировать VM. Или в некоторых местах падала, не могла выделить память. Или вела себя странно (странность в том, что не могла вызвать fork, чтобы выполнить команду "chmod", например, причина - памяти не хватало (ловятся исключения, в исключении говорится "cannot allocate memory"). Ok, сорри за лишни детали.
Ты можешь искусственно сымитировать ситуацию чтобы ошибка возникала сразу-же? И приведи тест который выдаёт стек исключений.

Напишу длинный интересный рассказ (-;

Каждый день её "имитирую" -> имитация заключается в выполнении двух стартовых скриптов hadoop :) Чтобы не заходить в тёмный лес, проще будет говорить, что эти скрипты выполняют просто запуск нескольких java -Xmx1000M .

Первый скрипт создаёт два таких процесса, второй ещё два-три... Важный момент (у обоих процессов этот момент идентичен) - после запуска, на один такой процесс оказывается сожрано памяти:

Код: plaintext
1.
2.
VIRT = 1461M
RES = 64M

А теперь фишка:

(1) На не-OpenVZ, на реальном ноуте
htop показывает, что свободной памяти убавилось на ~64M.
До:

После:


(2) На OpenVZ
htop показывает, что свободной памяти убавилось на ~1461M.
До:

После:

(ну не точно 1461, да)

Вот в этом и порылась собака. Реальный линукс "ограничивает по RES", виртуальный "ограничивает по VIRT". Конечно, нет таких понятий, и не так всё работает, это просто описание картины художественным языком )

Исключения я привести не могу, софт большой и в падает в разных местах - то не может fork() сделать (прочитал, что тупо делать fork() для execv(), есть же vfork(), но не я афтар софта), чтобы вызвать execv для запуска "chmod", то ещё что. Куча виртуальных машин просто не может запуститься после запуска собратьев, сожравших память, типа вот так:


Could not reserve enough space for object heap
Could not create the Java virtual machine.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36367508
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чесно говоря, не помю, чтобы в Linux, java форкала процессы. Хотя... может ошибаюсь. Сегодня приду домой - проверю.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36367510
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, два момента:

(1) В обоих линуксах (железном и виртуальном) отжирается ~1.4G VIRT, 64M RES.
(2) Но на железном линуксе сумма всех выделенных VIRT может превышать объём его RAM, а в OpenVZ не может.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36367533
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧесно говоря, не помю, чтобы в Linux, java форкала процессы. Хотя... может ошибаюсь. Сегодня приду домой - проверю.
А в java разве нет чего-то типа "system()" или ещё чего такого?

Нарыл стек исключений:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Exception in thread "main" java.io.IOException: Cannot run program "chmod": java.io.IOException: error= 12 , Cannot allocate memory
at java.lang.ProcessBuilder.start(ProcessBuilder.java: 459 )
at TestSysCall.main(TestSysCall.java: 21 )
Caused by: java.io.IOException: java.io.IOException: error= 12 , Cannot allocate memory
at java.lang.UNIXProcess.<init>(UNIXProcess.java: 148 )
at java.lang.ProcessImpl.start(ProcessImpl.java: 65 )
at java.lang.ProcessBuilder.start(ProcessBuilder.java: 452 )
...  1  more
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368301
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не очень корректно выражаюсь про VIRT вообще, ибо он есть ещё и сумма всех замапленных в память файлов, всех шаред-либ и т.п., но чуЙства стараюсь передать)
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368391
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧесно говоря, не помю, чтобы в Linux, java форкала процессы. Хотя... может ошибаюсь. Сегодня приду домой - проверю.
Под windows java создаёт потоки WindowsThread на каждый JavaThread. Плюс еще резервирует около 10 потоков для собстенных нужд.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368409
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonmaytonЧесно говоря, не помю, чтобы в Linux, java форкала процессы. Хотя... может ошибаюсь. Сегодня приду домой - проверю.
Под windows java создаёт потоки WindowsThread на каждый JavaThread. Плюс еще резервирует около 10 потоков для собстенных нужд.
А программу внешнюю из java-программы выполнить как? Без создания ещё одного процесса? )
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368425
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под Linux java создаёт потоки. В начале - в количестве девяти штук после бута а потом, по одному потоку на каждый работающий экземляр класса java.lang.Thread. Я только что убедился в этом используя top -H.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
[mayton@host java]$ uname -a
Linux host.localdomain  2 . 6 . 18 - 53 .el5 # 1  SMP Sat Nov  10   18 : 24 : 52  EST  2007  i686 i686 i386 GNU/Linux

[mayton@host java]$ java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build  1 . 6 .0_06-b02)
Java HotSpot(TM) Client VM (build  10 . 0 -b22, mixed mode, sharing)
[mayton@host java]$

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
[mayton@host java]$ top -U mayton -H -c
top -  23 : 12 : 11  up   1 : 37 ,   2  users,  load average:  0 . 02 ,  0 . 04 ,  0 . 11 
Tasks:  145  total,    3  running,  142  sleeping,    0  stopped,    0  zombie
Cpu(s):   0 . 3 %us,   0 . 7 %sy,   0 . 0 %ni,  99 . 0 %id,   0 . 0 %wa,   0 . 0 %hi,   0 . 0 %si,   0 . 0 %st
Mem:   1035328k total,   728000k used,   307328k free,    72800k buffers
Swap:  4192956k total,        0k used,  4192956k free,   399580k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 17320  mayton     16     0    2168   1028    788  R   1 . 0    0 . 1     0 : 00 . 81  top -U mayton -H -c
 16964  mayton     15     0    9152   1496    976  S   0 . 0    0 . 1     0 : 00 . 23  sshd: mayton@pts/ 0 
 16965  mayton     15     0    4504   1416   1164  S   0 . 0    0 . 1     0 : 00 . 10  -bash
 17108  mayton     15     0    8996   1480    972  S   0 . 0    0 . 1     0 : 00 . 07  sshd: mayton@pts/ 1 
 17109  mayton     15     0    4504   1416   1164  S   0 . 0    0 . 1     0 : 00 . 07  -bash
 17322  mayton     17     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 00  java Main
 17323  mayton     18     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 09  java Main
 17324  mayton     15     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 00  java Main
 17325  mayton     21     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 00  java Main
 17326  mayton     22     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 00  java Main
 17327  mayton     23     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 00  java Main
 17328  mayton     18     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 01  java Main
 17329  mayton     25     0   210m  8332   4344  S   0 . 0    0 . 8     0 : 00 . 00  java Main
.....
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368427
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как в линуксе можно выполнить другую программу без создания нового процесса?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368429
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mriadusА программу внешнюю из java-программы выполнить как? Без создания ещё одного процесса? )
Это требует отдельного обсуждения. Возм. такие технологии как JNI и будут запускать экземпляры процессов но тогда при чём тут java? Ведь в вашем случае, насколько я понял мы обсуждаем особенности работы pure java в окружении так называемой OpenVZ.

Или не так?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368439
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonmriadusА программу внешнюю из java-программы выполнить как? Без создания ещё одного процесса? )
Это требует отдельного обсуждения. Возм. такие технологии как JNI и будут запускать экземпляры процессов но тогда при чём тут java? Ведь в вашем случае, насколько я понял мы обсуждаем особенности работы pure java в окружении так называемой OpenVZ.

Или не так?
Не так. Наша речь о потоках началась с упоминания мной проблем с выполнением из java-программ других бинарей. Потом вы зачем-то написали о потоках. "зачем-то" я пишу потому, что я не в курсе, что можно запустить параллельное выполнение биаря с диска из моего процесса не создавая ещё одного процесса )
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368455
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько вопросов.

1) Почему ты использовал java.lang.ProcessBuilder.start а не java.lang.Runtime.exec ?
2) Ты анализировал возможность утечки ресурсов вследствие того, что ты не контролируешь событие завершения процесса chmod?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368459
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНесколько вопросов.

1) Почему ты использовал java.lang.ProcessBuilder.start а не java.lang.Runtime.exec ?
2) Ты анализировал возможность утечки ресурсов вследствие того, что ты не контролируешь событие завершения процесса chmod?

Не я автор софтины.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368465
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И я не понял, зачем ты говоришь о потоках. Какое они имеют отношение к выполнению бинаря с диска? Могут разве использоваться для этого? Как мне подсказывает мой моск, нет ) Для параллельного (с нами) выполнения бинаря с диска делают (в юниск системах):

fork() -> execve();
vfork() -> execve();

Вот я тормоз, то на ты, то на вы.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36368739
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mriadusНе я автор софтины.
Похоже насчёт потоков я ошибся. Ну.. вобщем, если посмотреть на стек, то java валится прибл. в следующем коде private native long create(String JavaDoc cmdstr, String JavaDoc envblock,....) в классе ProcessImpl . Почему это происходит - я не знаю.

Поковыряйте исходники java для вашей ОС/виртуальной машины. Мне почему-то сейчас не удаётся скачать исходники с java.sun по техническим причинам.

Еще хорошо-бы найти разработчика, прижать его к стенке и допросить, тестировал ли он своё творение на совместимость с OpenVZ.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370135
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При чём тут "эти ваши" потоки я так и не врубился. Зачем вы о них начали говорить - тайна века.

Что значит совместимость с OpenVZ? Это OpenVZ должен претендовать на совместимость с тем, что работает в обычных условиях, а не наоборот.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370268
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забудь про потоки. Меня почему-то припёрла мысль о том, что ProcessBuilder должен наследовать Thread. Но я ошибался.

По поводу OpenVZ ты очень даже неправ. Разработчик ВСЕГДА делает ПО под целевую платформу. Если ты чего-то нарушил при эксплуатации (изменил ОС, железо, или просто поменял параметры окружения) то в 99.9% ты будешь неправ а разработчик прав.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370383
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗабудь про потоки. Меня почему-то припёрла мысль о том, что ProcessBuilder должен наследовать Thread. Но я ошибался.

По поводу OpenVZ ты очень даже неправ. Разработчик ВСЕГДА делает ПО под целевую платформу. Если ты чего-то нарушил при эксплуатации (изменил ОС, железо, или просто поменял параметры окружения) то в 99.9% ты будешь неправ а разработчик прав.
%99.999 всего нашего софта под этим OpenVZ заработало так, что мы и не заметили, что это какая-то другая платформа, отличная от linux.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370404
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто прав - пофиг абсолютно. Пусть даже OpenVZ числится как отдельная платформа - тоже пофиг. Но на этой "другой платформе" у нас работает всё, кроме того, о чём я поднимаю вопросы здесь. Если это решить - мы благополучно дружим с OpenVZ, будь она хоть другой платформой, хоть чем. Мы как-то научной классификацией платформ не занимаемся и чихать хотели)
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370475
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на "железном" линуксе эта ошибка проявляется?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370537
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА на "железном" линуксе эта ошибка проявляется?
Пункт (3) в первоначальном посте рассказывает об успешном запуске 5 процессов java -Xmx1000M - это было на железном линуксе. И далее описывается облом при запуске их на OpenVZ.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370554
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не могу добавить. В настоящий момент я-бы просто предложил потестировать ваше ПО под Xen и KVM.

+Еще нашёл любопытную статью , где всколзь упоминаются проблемы свопа при работе с OpenVZ.

А вообще зачем виртуализируете? Безопасность? Делите сетевые интерфейсы? Дисковые ресурсы?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36370572
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНичего не могу добавить. В настоящий момент я-бы просто предложил потестировать ваше ПО под Xen и KVM.

+Еще нашёл любопытную статью , где всколзь упоминаются проблемы свопа при работе с OpenVZ.

А вообще зачем виртуализируете? Безопасность? Делите сетевые интерфейсы? Дисковые ресурсы?
Это решение принимал не я, а наши админы. Я там С++ программист и афтор C++-софта, который будет работать под управлением hadoop. Сам Hadoop на java, я занимаюсь настройкой кластера и вот испытываю такие проблемы.

В ходе работы на каждом узле кластера запускается некоторое количество JVM, все с ключом -Xmx1000M по-умолчанию.

Этот Hadoop и есть тот софт, который я пытаюсь запускать на разных узлах.

Например у меня успешно работал кластер из двух ноутов (Pentium M760 / 2G RAM). То есть, оперативы на каждом было два гига, но успешно запускалось по нескольку таких java -Xmx1000M. Свопа нет.

Потом админы говорят: сделали тебе виртуальные среды для тестирования на нашем крутом серваке. Установочный скрипт делает из двух таких машин кластер и дальше я начинаю играться. И наблюдаю обломы запустить несколько java -Xmx1000M. Памяти в этих VPS: (1) 3.5G, (2) 2.5, своп отключен, как и на ноутах.

Можно играться с -Xmx, но вопрос в том, как оно работает на железных ноутах и почему не хочет под OpenVZ.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36636596
Zeal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с такой же проблемой при работе Java приложения, которое пытается под OpenVZ вызвать внешнюю команду. Команда валиться с исключением "java.io.IOException: error=12, Cannot allocate memory"
Как Вы проблему решили?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36636999
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZealСтолкнулся с такой же проблемой при работе Java приложения, которое пытается под OpenVZ вызвать внешнюю команду. Команда валиться с исключением "java.io.IOException: error=12, Cannot allocate memory"
Как Вы проблему решили?
Мне перекрыли доступ к корпоративному wiki, где я всё описывал, после увольнения недавно.
Речь шла об изменении лимитов значений кол-ва памяти, которую позволительно выделять приложения - за это отвечают переменные из ряда "privvmpages", "lockedpages", "shmpages", "physpages". Какие точно - не помню.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36637530
Zeal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня сработал лимит privvmpages.
А в вашем случае изменение лимитов решило проблему?
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36637888
Фотография mriadus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZealУ меня сработал лимит privvmpages.
А в вашем случае изменение лимитов решило проблему?
Решило.
...
Рейтинг: 0 / 0
Выделение памяти в линуксах.
    #36640001
Zeal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Я у себя тоже увеличил значение privvmpages и пока все работает.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выделение памяти в линуксах.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]