JVM internals - what does the JVM do? — Ian Rogers

Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Palych »

Zorkus wrote:
Palych wrote:
Flash-04 wrote:вот, пожалуйста:
Palych wrote:Java умеет очищать память не останавливая работы. И делает это весьма эффективно.
http://forum.privet.com/viewtopic.php?f ... 0&start=75
Раз уж меня процитировали - поясню: полностью избавиться от full GC на сильно нагруженых системах мне лично не удавалось, но уменьшить частоту до пары раз в неделю получалось...
Это на Hotspot, какой версии? Стандалон приложение, или внутри appserver-a? В каком generation, каким сборщиком?
JBoss, Servlets only.
Когда full GC случается - он занимает 4 секунды.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

а какие jvm и gc? и какие настройки gc? и какого характера прграммы?
Don't code today what you can't debug tomorrow.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Zorkus »

Еще, а как вы проверяете, что 1-2 раза в неделю случился GC? +XX:-PrintGCTimeStamps, и грепать логи?
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

кстати, пораскинув оставшимися после сумасшедшей недели мозгами, мне кажется очевидно что у человека пре-Г1 сборщик мусора. иначе он никак бы не ждал неделю для подчистки молодых объектов.
Don't code today what you can't debug tomorrow.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Zorkus »

Молодые объекты убираются не дожидаясь FullGС же.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

Zorkus wrote:Молодые объекты убираются не дожидаясь FullGС же.
разумеется, но это ж паузы, пусть короткие, а палыч говорит что их нет.
Don't code today what you can't debug tomorrow.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Zorkus »

rzen wrote:
Zorkus wrote:Молодые объекты убираются не дожидаясь FullGС же.
разумеется, но это ж паузы, пусть короткие, а палыч говорит что их нет.
Я почему-то понял, что Палыч имел в виду, что major collections идут раз в неделю, а мелкие чаще. Мелкие тоже на _очень_ короткое время, но делают паузу. Я почему-то думал, что сборка young generation в CMS коллекторе не останавливает JVM вообще. Был неправ :pain1:
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

Ну вобщем то верно, для подавляющего большинства случаем сборкой молодняка можно пренебречь. Но как минимум для собственного понимания природы сборщика полезно понимать что паузы никуда не уходят. Кстати чем больше ядер тем выше цена сборки мусора. Разрабатываешь на лаптопе всё чики пики, выкатил на 16-ядерный сервак с 64г памяти и опаньки, многосекундные паузы на сборку.
Don't code today what you can't debug tomorrow.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Zorkus »

Может дело в том, что 64 гига памяти? :) И соотв. размер генерейшенов и объектов в них.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

Zorkus wrote:Может дело в том, что 64 гига памяти? :) И соотв. размер генерейшенов и объектов в них.
И размер памяти тоже, конечно, но и кол-во ядер. много ядер успевают больше напакостить а разгребать то приходится одним ядром.
Don't code today what you can't debug tomorrow.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Palych »

Zorkus wrote:
rzen wrote:
Zorkus wrote:Молодые объекты убираются не дожидаясь FullGС же.
разумеется, но это ж паузы, пусть короткие, а палыч говорит что их нет.
Я почему-то понял, что Палыч имел в виду, что major collections идут раз в неделю, а мелкие чаще. Мелкие тоже на _очень_ короткое время, но делают паузу. Я почему-то думал, что сборка young generation в CMS коллекторе не останавливает JVM вообще. Был неправ :pain1:
Ну да, именно это я имел в виду. Young Gen collector может и останавливает машину, но на глаз это не заметно.
Измерения проводились с помошью CA Wily a.k.a. Introscope, или как он сейчас зовётся...
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Zorkus »

rzen wrote:
Zorkus wrote:Может дело в том, что 64 гига памяти? :) И соотв. размер генерейшенов и объектов в них.
И размер памяти тоже, конечно, но и кол-во ядер. много ядер успевают больше напакостить а разгребать то приходится одним ядром.
Почему одним? Это в Serial GC одним, а parallel GC идет всеми ядрами сразу.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Palych »

rzen wrote:а какие jvm и gc? и какие настройки gc? и какого характера прграммы?
JVM обычная, 1.6.последняя от Oracle (и не совсем последняя так же вроде работала)
Приложения примитивные - web service, переливают из пустого в порожнее: вызывают сервисы на CORBA. Но кода там куча наклёпано. Активно используется innovative Design Pattern Copy&Paste.
Обслуживается где-то 800 запросов в минуту на одном сервере.
Размер кучи: 2 гига.
Остальные настройки я опасаюсь вываливать: один сотрудник не из нашей команды как бы приложил к ним руку - мало ли чего...
Но вроде ничего волшебного...
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by crypto5 »

Palych wrote:
Zorkus wrote:
Palych wrote:
Flash-04 wrote:вот, пожалуйста:
Palych wrote:Java умеет очищать память не останавливая работы. И делает это весьма эффективно.
http://forum.privet.com/viewtopic.php?f ... 0&start=75
Раз уж меня процитировали - поясню: полностью избавиться от full GC на сильно нагруженых системах мне лично не удавалось, но уменьшить частоту до пары раз в неделю получалось...
Это на Hotspot, какой версии? Стандалон приложение, или внутри appserver-a? В каком generation, каким сборщиком?
JBoss, Servlets only.
Когда full GC случается - он занимает 4 секунды.
Но это ведь не означает что мир останавливается на 4 секунды
In vino Veritas!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

crypto5 wrote:
Palych wrote: Когда full GC случается - он занимает 4 секунды.
Но это ведь не означает что мир останавливается на 4 секунды
именно это и означает.
Don't code today what you can't debug tomorrow.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

Zorkus wrote:
rzen wrote:
Zorkus wrote:Может дело в том, что 64 гига памяти? :) И соотв. размер генерейшенов и объектов в них.
И размер памяти тоже, конечно, но и кол-во ядер. много ядер успевают больше напакостить а разгребать то приходится одним ядром.
Почему одним? Это в Serial GC одним, а parallel GC идет всеми ядрами сразу.
имхо sweep однотредовый в штатной JVM.
Don't code today what you can't debug tomorrow.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

уточню, во время полного GC происходит так же и дефрагментация
Don't code today what you can't debug tomorrow.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by crypto5 »

rzen wrote:
crypto5 wrote:
Palych wrote: Когда full GC случается - он занимает 4 секунды.
Но это ведь не означает что мир останавливается на 4 секунды
именно это и означает.
Выше вроде картинка была что concurrent mark sweep останавливает мир не на все время работы а на короткий промежуток времени в начале что бы что-то там маркнуть, и еще в конце.
In vino Veritas!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

crypto5 wrote:
rzen wrote:
crypto5 wrote:
Palych wrote: Когда full GC случается - он занимает 4 секунды.
Но это ведь не означает что мир останавливается на 4 секунды
именно это и означает.
Выше вроде картинка была что concurrent mark sweep останавливает мир не на все время работы а на короткий промежуток времени в начале что бы что-то там маркнуть, и еще в конце.
см уточнение, дефраг останавливает мир :)
Don't code today what you can't debug tomorrow.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by crypto5 »

rzen wrote:
crypto5 wrote:
rzen wrote:
crypto5 wrote:
Palych wrote: Когда full GC случается - он занимает 4 секунды.
Но это ведь не означает что мир останавливается на 4 секунды
именно это и означает.
Выше вроде картинка была что concurrent mark sweep останавливает мир не на все время работы а на короткий промежуток времени в начале что бы что-то там маркнуть, и еще в конце.
см уточнение, дефраг останавливает мир :)
Но все равно остается непонятным остановлен ли мир на все 4 секунды?
In vino Veritas!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

crypto5 wrote:
rzen wrote:
crypto5 wrote:
rzen wrote:
crypto5 wrote: Но это ведь не означает что мир останавливается на 4 секунды
именно это и означает.
Выше вроде картинка была что concurrent mark sweep останавливает мир не на все время работы а на короткий промежуток времени в начале что бы что-то там маркнуть, и еще в конце.
см уточнение, дефраг останавливает мир :)
Но все равно остается непонятным остановлен ли мир на все 4 секунды?
дефраг останавливает мир
Don't code today what you can't debug tomorrow.
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by Flash-04 »

и все таки она вертится (c) :umnik1: :D
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by crypto5 »

rzen wrote:
crypto5 wrote:
rzen wrote:
crypto5 wrote:
rzen wrote: именно это и означает.
Выше вроде картинка была что concurrent mark sweep останавливает мир не на все время работы а на короткий промежуток времени в начале что бы что-то там маркнуть, и еще в конце.
см уточнение, дефраг останавливает мир :)
Но все равно остается непонятным остановлен ли мир на все 4 секунды?
дефраг останавливает мир
Хорошо, есть уверенность какую часть из 4 секунд занимает дефраг?
In vino Veritas!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by rzen »

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

если же смысл вопроса в том, можно ли эти провалы минимизировать до приемлимого уровня, то ответ тоже да, для подавляющего большинства задач очень даже можно. я гоняю эклипс безостановочно и никаких провалов не чувствую.
Don't code today what you can't debug tomorrow.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: JVM internals - what does the JVM do? — Ian Rogers

Post by crypto5 »

rzen wrote:не зная конкретики сложновато прогнозировать, но если смысл вопроса в том, случаются ли у джавы "провалы" изза сборщика мусора, то да, случаются. провалы абсолютные, никакие треды во время провала не исполняются.
Смысл вопроса в том что собершенно неизвестно происходит ли стоп мир на все 4 секунды у Павла.
In vino Veritas!

Return to “Вопросы и новости IT”