Оптимизирующий производительность Oracle 10g на сервере, который также является сервером приложений Tomcat JSP?

Я унаследовал простую 5 - 64-битную платформу RedHat.

Он имеет диски SCSI на RAID1 с 16 ГБ оперативной памяти. Двухъядерный процессор.

Oracle 10g, выпуск 2.

Возможно, это будет достойной платформой для запуска только БД, но тот же сервер в кластерном режиме "AA" (очень простой) также запускает Tomcat, и на нем работает несколько Java-сервлетов.

К сожалению, нет платформы для кэширования и т. Д. Мы используем только внешний CDN для некоторого кэширования html.

Я лично больше знаком с веб-средами на платформе LAMPP (apache, php, mysql, postgresql).

ПРОБЛЕМА. Поскольку на сервере одновременно работают Tomcat JSP/Java и Oracle 10g без кеширования, у меня возникают некоторые проблемы с отключением сервера. Часто, к сожалению.

ВОПРОС: Какие у меня варианты с точки зрения повышения производительности всех этих разных приложений?

  • Пул подключений? Например, в мире Postgresql у нас есть PgBouncer, который действительно помогает. Есть ли у Oracle что-то подобное? Или существует знаменитый внешний пул на основе Java, который люди используют в производственных средах? (Я не знаком с Java)

  • Любой "кеш SQL", как в мире MySQL и Postgresql?

  • Любой другой вид кеша приложений, как "APC" или "eAccelarator" в мире PHP?

  • Материал "OSCache" из мира Java (вещь, которую я нашел в Google: http://onjava.com/pub/a/onjava/2005/01/05/jspcache.html?page=2)

...

Что-то еще?

Извините, если это нубский вопрос. Я гуглил и гуглял, но проблема в том, что я не знаю, что искать, кроме общих общих понятий выше. Так что если бы не полные ответы, я был бы даже признателен за основные советы, и я счастлив сам JFGI.

Спасибо!

2 ответа

Решение

Я полагаю, что Tomcat предоставляет несколько вариантов для пула соединений, хотя StackOverflow может быть лучшим местом для обсуждения этих возможностей.

В остальном:

Узкие места Oracle и настройка производительности - это широкая и сложная область, и то же самое касается приложений J2EE, контейнеров и кэширования.

Существует ряд коммерческих инструментов и инструментов с открытым исходным кодом, которые должны быть полезны, некоторые из них имеют большое значение как для выявления возможных проблем, так и для обучения пользователя. Одним из таких коммерческих инструментов является Spotlight на Oracle от Quest Software. Quest также предоставляет Performasure, который я считаю отличным решением для диагностики приложений низкого уровня. http://www.quest.com/

Oracle предоставляет множество бесплатной документации для своей платформы баз данных на http://docs.oracle.com/ и http://tahiti.oracle.com/ включая книги по вопросам производительности и настройки.

Аналогичным образом, в IBM Red Series включены бесплатные книги, посвященные настройке производительности и узким местам, связанным с чем угодно, от Oracle, J2EE, Linux, хранилищ до общих систем проектирования. http://www.redbooks.ibm.com/

Настройка производительности Oracle Database 10g: советы и методы, хотя и не бесплатная, но и Oracle Essentials: Oracle Database 10g, если вам нужно лучше понять основы баз данных Oracle. Вы можете прочитать оба онлайн на http://www.safaribooks.com/ и я верю, что они предлагают бесплатную пробную версию.

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

Вы должны убедиться, что Tomcat JRE работает в режиме сервера (не клиента). Это должно отображаться при запуске и не всегда должно быть дано. Это должно быть равным шагом к использованию eAccellerator в PHP-мире - сервлеты компилируются при загрузке.

Соединение соединений очевидно необходимо. Я не думаю, что есть большой шанс получить приложение без объединения. Но лучше проверь это. Е

В веб-приложениях я всегда получал большие улучшения, добавляя HTTP-заголовок (Pragma cache, Expires) для обеспечения кеширования статических элементов.

Если вы способны изменить программирование, всегда полезно посмотреть на SQL-планы (объяснение)... это часто показывало мне, где я пропускаю индексы.

И реализация кеширования часто используемых элементов, конечно...

Другой возможностью поиска может быть увеличение кучи Tomcat (-Xmx....) - возможно, это помогает, если Tomcat не хватает памяти и запускает сборку мусора.

Что именно ты имеешь в виду под "спуском"? Сервер работает медленно или дает сбой?

Другие вопросы по тегам