powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Тормоза Apex
13 сообщений из 38, страница 2 из 2
Тормоза Apex
    #38924794
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,

Решит проблему, если в логах есть ошибка outofmemory. Но там не в одном месте память увеличивается, надо знать что увеличивать, поэтому в этом случае начать нужно с логов.

Ну и проверить потребление CPU и диска, т.к. есть куча багов, когда weblogic может виснуть и это не связано с памятью.
...
Рейтинг: 0 / 0
Тормоза Apex
    #38924943
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevirbis_al,

Решит проблему, если в логах есть ошибка outofmemory. Но там не в одном месте память увеличивается, надо знать что увеличивать, поэтому в этом случае начать нужно с логов.

Ну и проверить потребление CPU и диска, т.к. есть куча багов, когда weblogic может виснуть и это не связано с памятью.

До ошибки outofmemory. происходит замерание.(связанное с очисткой.) а вот когда не может всё очистить а нужная память для приложения "не нарисовалась" возникает outofmemory exception.

И тормоза как раз говорят ,что он на границе нехватки памяти...но каждый раз ему её удаётся освободить.
(я давно я java работаю и эту тему знаю)
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925005
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_alИ тормоза как раз говорят ,что он на границе нехватки памяти...но каждый раз ему её удаётся освободить.
(я давно я java работаю и эту тему знаю)
Тормоза ни о чем не говорят, это лишь одна из трех озвученных здесь версий источника тормозов. Если есть Memory Leak, то как следствие появление outofmemory в логах практически неизбежно и можно уже решать проблему точечно. Или искать проблему в другом месте. Речь идёт не о тормозах на определенный интервал времени, а о том, что проблема решается только перезапуском weblogic, поэтому очистка памяти само по себе здесь врят ли не является проблемой.

С учетом, что проблема на конкретной странице, другие версии более вероятны. Если оставить баги с бесконечным потреблением cpu процессами weblogic в покое, то проблема может быть в dblinks, например. Например, в определенных ситуациях oracle не освобождает память выделяемую под dblink, до закрытия сессии, либо до вызова dbms_session.close_database_link вызывая утечки памяти уже в самом оракле (версия проверяется килянием всех сессий, как уже заметили выше). Тут слишком мало информации, чтобы делать какие-либо выводы о причинах тормозов.
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925494
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_alтак ведёт себя java когда permgen и heap память подходят критической точке.
Он очищает кучу.И если есть утечки памяти ...а у WL они есть...тем больше времени на анализ мёртвых объектов.

Я много раз наблюдал примерно следующую картину: например сервер работает несколько месяцев, вдруг начинает тормозить, в логах ошибка outofmemory, которая каждый раз соответствует примерно времени началу тормозов. Т.е. тут четкая корреляция каждый раз между наличием ошибки outofmemory и началом тормозов. Я думаю, это связано с тем, что какие-то процессы при этом перестают адекватно работать, например высвобождение нужного количества памяти начинает занимать очень много времени, в результате новые процессы не могут получить доступа к новой памяти и начинаются тормоза. С учетом теории с memory leak, то вполне может быть, что когда количество утекшей памяти приближается к критической массе, новым процессами просто не хватает памяти, в результате возникает outofmemory, поэтому эти два события и возникают примерно в одно время.
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925566
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevirbis_alтак ведёт себя java когда permgen и heap память подходят критической точке.
Он очищает кучу.И если есть утечки памяти ...а у WL они есть...тем больше времени на анализ мёртвых объектов.

Я много раз наблюдал примерно следующую картину: например сервер работает несколько месяцев, вдруг начинает тормозить, в логах ошибка outofmemory, которая каждый раз соответствует примерно времени началу тормозов. Т.е. тут четкая корреляция каждый раз между наличием ошибки outofmemory и началом тормозов. Я думаю, это связано с тем, что какие-то процессы при этом перестают адекватно работать, например высвобождение нужного количества памяти начинает занимать очень много времени, в результате новые процессы не могут получить доступа к новой памяти и начинаются тормоза. С учетом теории с memory leak, то вполне может быть, что когда количество утекшей памяти приближается к критической массе, новым процессами просто не хватает памяти, в результате возникает outofmemory, поэтому эти два события и возникают примерно в одно время.

А мне кажется немного неправильно настроен WL.(его стартовые параметры)
Например...задеплоили на него приложение....потом ещё одно...потом ещё одно...а потом апекс.
А память не увеличили...и утечек памяти может нет. Но когда какой-то процесс захватил лишнего.очистка кучи начинает вызываться часто....потому что java не может сразу освободить всё то ,что тот процесс "хапнул" (Мы ведь не забываем ,что другие приложения тоже работают и потребляют только освободившуюся память...а тут и другие на очереди ждут памяти...) И таким образом)...И outofmemory exception может и не возникнуть....
Мы попадаем в цикл...у нас есть как бы память которую можно было бы освободить..но нет на это кванта времени....и обслуживается только вот-вот необходимое.(При условии ,что сервер активно эксплуатируется ).

Если бы ему дали несколько минут idle ...без запросов он бы разобрался с этой кучей и вернулся в исходное рабочее состояние.
А так он входит в режим "заморозки"
(Это лучше в форуме по java перетирать).
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925593
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_alНо когда какой-то процесс захватил лишнего.очистка кучи начинает вызываться часто....потому что java не может сразу освободить всё то ,что тот процесс "хапнул" (Мы ведь не забываем ,что другие приложения тоже работают и потребляют только освободившуюся память...а тут и другие на очереди ждут памяти...) И таким образом)...И outofmemory exception может и не возникнуть....
Мы попадаем в цикл...у нас есть как бы память которую можно было бы освободить..но нет на это кванта времени....и обслуживается только вот-вот необходимое.(При условии ,что сервер активно эксплуатируется ).
С причинами возникновения спорить не буду, может и так, но вот дальше после outofmemory объяснение не очень подходит. Т.е. имели достаточно часто раньше такую ситуацию: утром работало нормально, потом, например, в 10:20 перестало работать, и в следующие пол дня уже почти ничего не работает, пока сервер не перезапустишь. Т.е. это не постепенно нарастающая проблема, и не проблема, которая проходит со временем, при том что сервер месяцами работал нормально при схожей нагрузке. Как минимум во время обеда при существенном снижении нагрузки он должен был бы разгрузиться, но подобного не наблюдалось ни разу. Сейчас таких ошибок в общем-то не наблюдается уже
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925601
Фотография Алексей Выхрыстюк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробуйте запускать листенер на прямую, и смотреть процес оракла (APEX_PUBLIC_USER) через monitor session в sql developer (или другими способами).
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925629
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,

Т.е. я хочу сказать, что out of memory это некий порог, событие, которое прямо или косвенно может существенно влиять на работу сервера. Что собственно не противоречит описанным выше причинам возникновения ошибки.
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925640
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevirbis_al,

Т.е. я хочу сказать, что out of memory это некий порог, событие, которое прямо или косвенно может существенно влиять на работу сервера. Что собственно не противоречит описанным выше причинам возникновения ошибки.

Ну так у автора же вроде не было outofmemory exception...так было бы вообще всё просто .
outofmemory exception свидетельствует о многих косяках.

Но и тем не менее без outofmemory exception j2ee может замирать...об этом много статей в инете.
И как раз одна из причин связана с тем что не успевает GC за процессами....особенно если один из процессов много сразу хапнул.(того процесса уже в помине нет ...а мусор ещё не разгребли...и память не освободили)
Я сам так Glassfich нагружал(На предмет проверки Тех условий...какие клиенту настройки ставить)...и он GF входил в этот ступор(без outofmemory).(правда если ему дать idle время GF восстанавливался)

Алексей ВыхрыстюкПробуйте запускать листенер на прямую, и смотреть процес оракла (APEX_PUBLIC_USER) через monitor session в sql developer (или другими способами).

Так это первое что ему выше посоветовали.
...
Рейтинг: 0 / 0
Тормоза Apex
    #38925655
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_alНу так у автора же вроде не было outofmemory exception...так было бы вообще всё просто .
outofmemory exception свидетельствует о многих косяках.
Я очень сомневаюсь, что ТС умеет логи сервера weblogic смотреть, иначе он о них бы упомянул в первом же сообщении ;)

А посмотреть, что там происходит попросту необходимо
...
Рейтинг: 0 / 0
Тормоза Apex
    #38946796
Vortexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема была в веб логике, что именно там глючило так выяснить и не удалось.
...
Рейтинг: 0 / 0
Тормоза Apex
    #38953284
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vortexoid,

Я бы не стал говорить, что проблема именно в weblogic-е без тщательной проверки и отработки вариантов (легко ошибиться).
Например, сильно большое совпадение по dblink-ам, соответственно, стоит отработать вариант описанный выше (даже если все признаки, что проблема в weblogic), и помониторить V$PROCESS_MEMORY, скажем, на предмет неадекватных значений на период проблем. Даже в хелпе написано, что dblink-и таки желательно чистить в Security Attributes > Cleanup PL/SQL Code

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

Собственно пишу, т.к. есть еще вариант (может еще кому пригодится, тут хорошо в обзорном виде написано)

Если windows с настройкой через планировщик (а это актуально для weblogic и для режима standalone),
то там есть неприятная особенность - приоритет i/o выставляется принудительно в низкий, независимо от приоритета cpu (не путать их)

http://www.outsidethebox.ms/9936/ Важное примечание о приоритете CPU и I/O

Когда программа запускается из планировщика, ей принудительно назначается низкий приоритет процессорного времени (CPU) и операций ввода-вывода (I/O). Это сделано специально, поскольку задачи планировщика рассчитаны на выполнение в фоне.

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

Указать другой приоритет задания можно только при импорте его XML-файла.
Это как минимум справедливо для windows server 2008 / 2012 независимо от мощности диска,
т.е. windows смотрит, если диск, скажем, нагружен только на половину, она может решить, что давать доступ к процессам с низким приоритетом вообще не стоит (или стоит, но редко), а это приводит к периодическим подвисаниям в период какой-нибудь неполной нагрузки на диск
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Тормоза Apex
    #39620042
askkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня подобная проблема была. После того как открываете страничку с вашим IR, oracle открывает dblink сессию, и не закрывает ее до тех пор, пока, например, в v$sessions вы не уберете процесс apex_public_user (или не перезапустите weblogic), после этого странички начинают снова летать, так как dblink сессия закрыта.
Apex при загрузке каждой страницы автоматически выставляет nls параметры сессии. alter session set.
Подобный вопрос рассматривался в моей ветке форума.

http://www.sql.ru/forum/1288623/dblink-alter-session-set-tormoza
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Тормоза Apex
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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