LINUX.ORG.RU
ФорумAdmin

OpenVZ и память


0

0

Собираюсь зарентовать Virtuozzo VPS и меня очень напугала статья http://habrahabr.ru/blogs/hosting/53236/. Действительно ли в Virtuozzo/OpenVZ когда гостевой системе выделяется память, то учитывается именно виртуальная память? Поделитесь мнением! Спасибо!

То есть когда я покупаю план скажем 512 мб RAM, то мне продают именно виртуальную память а не физическую?

crypto5
() автор топика

на физической машине память делится на физическую (RAM) и виртуальную (swap)

на VZ выделяется пул памяти SLM , который одновременно является и физической и виртуальной памятью, сваппингом части SLM управляет хост, на VPS вся память SLM представлена как физическая, хотя на самом деле она свапится, иногда сильно.

Sylvia ★★★★★
()

Угу, так и есть. phyzpages это read-only-счётчик в userbeancouners.

За это не люблю openvz. Тут, конечно, можно предъявлять претензии к прогам, но все программы не перепишешь.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Ок, то есть правильно ли я понимаю следующее: многие проги выделяют памяти много больше чем реально используют, и в OpenVZ тарифах учитывается именно эта память. Что бы разобраться с этим косяком вводится понятие burstable memory, типа память которую при использовании могут и не дать использовать.

crypto5
() автор топика
Ответ на: комментарий от crypto5

burstable даётся имхо тока на короткое время, поэтому не подходит. Не то чтобы прям все проги такие вредные что хавают лишнюю память, просто тут есть свои нюансы.

true_admin ★★★★★
()
Ответ на: комментарий от Sylvia

> на физической машине память делится на физическую (RAM) и виртуальную (swap)

Не надо чушь пороть, swap это тоже физическая память, так как находится на физическом носителе. Виртуальную память надо рассматривать как отображение виртуальных адресов в физические. Физические адреса могут быть в RAM/VRAM и даже на винте, причем на винте не только в виде swap'а, но для приложений это прозрачно, так как они работают со своими виртуальными адресами. Виртуальная память имеет смыл только для отдельного приложения. Виртуальная память машины - выражение бессмысленное.

Естественно, что при любой виртуализации виртуальной машине выделяется именно максимальный объем виртуальной памяти. Виртуальная машина это обычное userspace приложение, которое знает только о существовании виртуальных адресов. Нет, можно конечно именно физическую память под виртуальную машину выделать, но тогда придется писать модуль ядра, который будет вмешиваться в работу vm и из userspace'а с этим модулем как-то взаимодействовать - слишком сложно будет, а толку ноль.

Reset ★★★★★
()

Ссылку посмотрел. Имеется ввиду, что приложения гостевой системы под OpenVZ смогут использовать виртуальной памяти не больше видимой оперативной ? Как-то странно.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Имеется в виду что если ты выставил 256 метров на контейнер то malloc вернёт ошибку когда проги оттяпают 256мб VSS по top, даже если RSS будет минимальный.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Ну это тогда дерьмо. А если я захочу mmap'нуть файл на 10 гиг, хотя оперативы у меня всего лишь 256M? Это какая-то неправильная виртуализация.

Reset ★★★★★
()
Ответ на: комментарий от Reset

>Ну это тогда дерьмо. А если я захочу mmap'нуть файл на 10 гиг, хотя оперативы у меня всего лишь 256M? Это какая-то неправильная виртуализация.

Я тоже почитал много подобных стонов в инете, и решил что хоче дружить с ксеном. Но вообще нужно наверное найти какого нибудь OpenVZ гуру для консультаций.

crypto5
() автор топика
Ответ на: комментарий от Reset

а правильной я и не видел. Везде чем-то жертвуешь. Для vps openvz зачастую подходит гораздо лучше kvm и xen из-за меньшего оверхеда. Правда, поддерживается тока одна ОС :)

Вообще, на счёт mmap и openvz не уверен, проверять надо.

> Но вообще нужно наверное найти какого нибудь OpenVZ гуру для консультаций.

а самому проверить слабо?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> а самому проверить слабо?

Это тоже как нибудь, а счас на лаптопе места свободного мало.

crypto5
() автор топика

Хм такого не встречал.Там правда три параметра отвечают за память.Один гарантированно выдает , второй с возможностью на время, и третий вроде негарантированно(третий я не юзал) Да и ваще у меня обьемы не те )

pinachet ★★★★★
()
Ответ на: комментарий от true_admin

В опенВЗ считается запрошенная память а не реально используемая. Звучит не очень хорошо. Но по опыту большая часть этой неиспользуемой но подсчитанной памяти - стек. Т.е практически все многопоточные приложения со стеком по умолчанию не очень желательны (более того они и есть основные потребители, как правило malloc тут не при чем), например apache + MPM worker без настройки стека нежелателен.

вообщем если правильно побдибать софт то все будет нормально. Для веб проектов идеально nginx/php-fastcgi

Поиграйтесь с настройками стека через ulimit - тоже помогает.

Кстати если бы возьмете тариф с большим количеством burstable памяти то есть очень большая вероятность что она будет доступна практически всегда. Чем больше памяти в тарифе тем больше вероятность. Так как перегрузка хост системы возникнет именно при нехваттке реально используемой а не выделеной..

OxiD ★★★★
()
Ответ на: комментарий от OxiD

2 OxiD

Блин, а мне нужно вот имнно многопоточное приложение гонять. Получатся теперь -- либо проблемы с учетом памяти, либо приложению в ответственный момент может не хватить стека..

crypto5
() автор топика
Ответ на: комментарий от OxiD

> wiki.openvz.org там все понятно написано.. про временную память ничо помоему нет ;)

И при этом все хостеры предлагают burstable memory..

crypto5
() автор топика
Ответ на: комментарий от crypto5

Ну и гоняй себе. Просто смотри - стек по умолчанию в GNU умножь на количество потоков.

Вообщем - при создании потока можно указать ему размер стека (это если хочешь в коде ковыряться)

если не хочешь - смотри такой параметр в конфиге, или сделать ulimit.

Как рпавило дефолтный размер стека не используется.

Ну и плюс ко всему - что значит многопоточное? может там всего 2 потока будет. а может они будут плодиться постоянно в бешеных количествах.

Что за прога?

OxiD ★★★★
()
Ответ на: комментарий от OxiD

Многопоточная програма на джава, обслуживающая большое количество паралельных запросов и использующая MySQL.

crypto5
() автор топика
Ответ на: комментарий от Reset

> Виртуальная машина это обычное userspace приложение

Ты сначала прочитай, что такое OpenVZ, а потом говори. OpenVZ это патч к ядру.

INFOMAN ★★★★★
()
Ответ на: комментарий от INFOMAN

Вот прочитал у них в вики:

Physpages is an accounting-only parameter currently. In future OpenVZ releases, this parameter will allow to provide guaranteed amount of application memory, residing in RAM and not swappable. For compatibility with future versions, the barrier of this parameter should be set to 0 and the limit to the maximal allowed value (MAX_ULONG).

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

crypto5
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.