Я унаследовал простую RedHat 5 - 64-битную платформу.
Он имеет диски SCSI на RAID1 с 16 ГБ оперативной памяти. Двухъядерный процессор.
Oracle 10g, выпуск 2.
Возможно, это была бы достойная платформа для запуска только БД, но тот же сервер в кластеризации «A-A mode» (очень простой) также запускает 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 (штука с JSP, которую я нашел в Google: http://onjava.com/pub/a/onjava/2005/01/05/jspcache.html?page=2)
...
Что еще?
Извините, если это вопрос новичков. Я гуглил и гуглил, но проблема в том, что я не знаю какие в Google, кроме общих концепций, изложенных выше. Так что, если бы не полные ответы, я бы даже оценил базовые указатели, и я сам рад JFGI.
Спасибо!
Я считаю, что Tomcat предоставляет несколько вариантов для объединения в пул, хотя StackOverflow может быть лучшим местом для обсуждения этих возможностей.
В остальном:
Узкие места Oracle и настройка производительности - широкая и сложная область, и то же самое касается приложений J2EE, контейнеров и кеширования.
Существует ряд коммерческих инструментов и инструментов с открытым исходным кодом, которые должны быть полезны, некоторые из них имеют большое значение как для выявления возможных проблем, так и для обучения пользователя. Одним из таких коммерческих инструментов является Spotlight on 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 Performance Tuning: Tips & Techniques не является бесплатным, это отличная вводная книга, как и Oracle Essentials: Oracle Database 10g, если вам нужно лучше понять основы баз данных Oracle. Вы можете прочитать оба в Интернете по адресу http://www.safaribooks.com/ и я действительно считаю, что они предлагают бесплатную пробную версию.
Хорошее место для начала - или, по крайней мере, такое же хорошее, - это выяснить, какие системные ресурсы испытывают перегрузку и кто их использует. Высокая загрузка процессора? Если да, то это вызвано ожиданием ввода-вывода? Как используется память, не вызывает ли недостаток памяти дополнительный ввод-вывод? Насколько интенсивно приложение или ЦП базы данных? Ограничена ли рабочая нагрузка ЦП или операций ввода-вывода базы данных? Связана ли нестабильность с производительностью или могут быть другие проблемы в системе. Получение ответов на несколько фундаментальных вопросов должно по крайней мере помочь вам.
Вы должны убедиться, что Tomcat JRE работает в серверном режиме (а не в клиентском). Это должно отображаться при запуске и не всегда. Это должно быть равнозначно использованию eAccellerator в мире PHP - сервлеты компилируются при загрузке.
Очевидно, что соединение пула необходимо. Я не думаю, что есть большие шансы получить приложение без пула. Но лучше проверьте это. E
В веб-приложениях я всегда получал большие улучшения, добавляя HTTP-заголовок (Pragma cache, Expires) для принудительного кеширования статических элементов.
Если вы способны изменить программирование, просмотр планов SQL (объяснение) всегда полезен ... он часто показывает мне, где мне не хватает индексов.
И, конечно, реализация кеширования часто используемых элементов ...
Другой возможностью для поиска может быть увеличение кучи Tomcat (-Xmx ....) - возможно, это поможет, если Tomcat исчерпывает память и начинает сборку мусора.
Что именно вы имеете в виду под «падением»? Сервер работает медленно или дает сбой?