LINUX.ORG.RU

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


0

1

Есть удаленный виртуальный хостинг с одной java-программкой, которая там крутится в виде сервера. Последнее время программка стала постоянно вываливаться с

java.lang.OutOfMemoryError: requested 1111360 bytes for Chunk::new. Out of swap space? # # Internal Error (allocation.cpp:218), pid=5239, tid=2545122208 # Error: Chunk::new

Сейчас запускается с -Xms100M -Xmx200M, попытки играть с этими параметрами приводят вообще к странным последствиям типа java не запускается с ходу например с «Could not reserve enough space for object heap», но пока не суть дела.

free -m показывает: $ free -m total used free shared buffers cached Mem: 24202 275 23927 0 0 0 -/+ buffers/cache: 275 23927 Swap: 0 0 0

Есть подозрение, что сервер просто физически не хочет выделять ей память, хотя номинально ее доступно дохрена. Можно как-нибудь грамотно проверить физический лимит выделения памяти - т.е. сделать что-то типа malloc, только из командной строки, и посмотреть, на каком значении он начнет срубаться?

★★★★★

виртуализация какая? К хостеру иди, спрашивай, почему тебе free показывает 24 гига оперативки а выделить не даёт. Подозреваю, что изза настроек впски у тебя вместо памяти впски показывается память физического сервера.

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

ну в принципе я так и собирался сделать, только думал сначала диагнозтику точнее провести - типа показать вывод команды free и рядом вывод условной команды «malloc 500M», которая падает с out of memory или что-то типа того. просто есть еще подозрение на то, что сама эта java-шная прога грубить с памятью может - это xmpp-сервер, который проработал уже пару месяцев нормально, а теперь начал срубаться - мало ли что у него там внутри за это время произошло.

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

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

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

>ну в принципе я так и собирался сделать, только думал сначала диагнозтику точнее провести - типа показать вывод команды free и рядом вывод условной команды «malloc 500M», которая падает с out of memory или что-то типа того

самый простой метод - написать этот самый сишник с маллоком, скомпилить и вызвать на сервере. имхо.

stave ★★★★★
()

echo 3 > /proc/sys/vm/drop_caches && free

// b.

anonymous
()
Ответ на: комментарий от beastie

$ ulimit
unlimited

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

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