powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Mandrake, Java, Tomcat
10 сообщений из 10, страница 1 из 1
Mandrake, Java, Tomcat
    #33647840
j_question
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос следующий.

На сервере под Linux Mandrake нужно запустить 2 томката.
Проблема в следующем:
запускаем каждый через jsvc и наблюдаем след-ю картину:

top:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24788 tomcat 16 0 357m 63m 15m S 0.0 6.3 0:09.22 jsvc
23765 tomcat 16 0 347m 51m 15m S 0.0 5.1 0:05.34 jsvc

не устраивают показатели занимаемой памяти.
Какие будут предложения по уменьшению занимаемой памяти ?
Оптимизация приложения - само собой, производиться постоянно.
Все дело в том, что один из этих процессов - по сути пустое приложение ?
Я так полагаю, основную часть памяти занимает виртуальная машина ? Или я ошибаюсь ?
Кто как решает эту проблему ?
Ссылки на полезную информацию, которые могут помочь решить проблему привествуются.

Заранее благодарен все ответившим.
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33647971
При запуске томката (см. catalina.sh) указывается, сколько памяти ему можно кушать. Ищите или добавляйте ключик типа -Xmx512M. Если он не указан, то используется значение по умолчанию (оно отличается для разных версий).
Для пустого приложения поставьте, например, -Xmx64M.
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33648518
j_question
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
об этом я знаю....

Все-таки еще раз задам вопрос, который интересует меня больше всего:
столбик VIRT - 357 метров.
Это все-таки память, которую забирает на себя jvm ?
Если да - то след вопрос:
я запускаю два томката (через jsvc, хотя особой роли это не играет).
Возможно ли следующее:
виртуальная машина забрала себе теже 300m один раз, а затем все томкаты, которые запускаются в дальнейшем - запускаются под той же jvm (т.е. память повторно не выделяется), а выделяется память только под нужды самого приложения (теже 50m).

Выглядить это будет примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
--------------------------------
|JVM - 350mb.                        |
|                                          |
| |---------------|                 |
| |Tomcat1 - 50m |                 |
| |---------------|                 |
|                                          |
| |---------------|                 |
| |Tomcat2 - 30m |                 |
| |---------------|                 |
--------------------------------
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33648600
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя так.
одно приложение Java, одна JVM. 2-а приожения Java, 2-е JVM и т.д.
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33649707
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>одно приложение Java, одна JVM. 2-а приожения Java, 2-е JVM и т.д.
Все именно так.Однако общее использование памяти потенциально возможно.
Значение VIRT в топе показывает общий обем виртуальной памяти, занимаемой процессом. Значение SHR показывает объем потенциально шарящейся памяти.
Для всех 2 десятков работающих у меня инстансов java значение VIRT ~100Mb
и значение SHR 37Mb. При этом общий обем памяти 1Gb + 1Gb swap
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33650327
j_question
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что показывает RES ?
И как удалось настолько сократить объем виртуальной памяти (у меня один процесс jsvc занимает 350 mb при старте) ?
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33650552
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RES: - объем физической незасвопленой памяти занимаемой процессом. Должно быть
VIRT = RES + SWP
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33650566
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу занимаемой памяти - мне ничего не пришлось в данном случае делать - меня параметры устраивают и они сразу были такие(Linux 2.6, Java 1.5.0_01, Tomcat 5)
Но вам дали правильный совет: поиграть с ключами виртуальной машины:
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size

Соответственно попробовать поставить например "-Xms32M -Xmx128M" в параметры JVM:
CATALINA_OPTS="-Xms32M -Xmx128M" ./enterprise2/jakarta-tomcat-5.5.9/bin/startup.sh
Хотя ...
Только что для проверки запустил на лаптопе и огреб:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4244 wsg 21 0 409m 32m 11m S 0.0 6.5 0:04.45 java
4245 wsg 16 0 409m 32m 11m S 0.0 6.5 0:00.00 java
4246 wsg 16 0 409m 32m 11m S 0.0 6.5 0:00.30 java
4247 wsg 16 0 409m 32m 11m S 0.0 6.5 0:00.00 java
4248 wsg 15 0 409m 32m 11m S 0.0 6.5 0:00.00 java
4249 wsg 22 0 409m 32m 11m S 0.0 6.5 0:00.00 java
... etc ...
А у меня всего 512M памяти - что-то здесь просто не так с подсчетом в некоторых случаях.
Если узнаю - вернусь ;)
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33651467
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отличный ответ есть здесь:
<Quote>
However asking the process how much memory it has allocated will show all memory including stuff that is marked copy on write - that is, I could have 100 processes showing they each use 1.4MB of memory, because they all share the same libray, but in fact, its the same copy they are all using so I'm only using 1.4 MB instead of 140MB (+PCB et. al)
</Quote>
http://tree.celinuxforum.org/CelfPubWiki/RuntimeMemoryMeasurement#head-19bbfd1f007d9cb0b97b831a1cb1dc06fcd0df10
Там же ссылка на приятную тулзу для измерения памяти: http://www.schleef.org/~ds/mem_usage
...
Рейтинг: 0 / 0
Mandrake, Java, Tomcat
    #33653219
j_question
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Буду разбираться )
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Mandrake, Java, Tomcat
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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