2010-02-07

7 наиболее распространенных ошибок при установке ограничений памяти Java

Оригинал: "6 Common Errors in Setting Java Heap Size" (кажется, автор несколько ошибся в подсчетах)
Перевод: Владимир Русинов

Для установки размера кучи java (heap) используются две опции: -Xmx для установки максимального размера и -Xms для начального(минимального) размера. Вот наиболее часто встречающиеся ошибки их использования:

1. Отсутствие m, M, g или G в конце (регистр не имеет значения). Например:

java -Xmx128 BigApp
java.lang.OutOfMemoryError: Java heap space

Правильная команда должна быть такой:
java -Xmx128m BigApp
. Строго говоря, -Xmx128 корректная настройка для очень маленьких приложений (например HelloWorld), но я думаю в большинстве случаев все-таки имелось в виду -Xmx128m.

2010-01-10

Определение размера swap использованого процессом

Стандартные консольные утилиты linux не показывают количество памяти процесса выгруженой в подкачку (swapped out).

Однако есть достаточно простой способ узнать это. Все что для нужно - взять идентефикатор процесса (PID) и просмотреть файл smaps относящийся к этому процессу:

cat /proc/pid/smaps | grep Swap

Эта команда выдаст кучу строк, отосящихся к разным сегментам памяти. Чтобы просуммировать все можно воспользоваться awk:

cat /proc/pid/smaps | grep Swap | awk '{ SUM += $2 } END { print SUM }'

Выведеное число - размер использованого свопа в килобайтах.


// Оригинал: http://linuxgazette.net/164/lg_tips.html