Oracle memory configuration on Windows

Я очень долго считал, что попытки использовать в production окружении Windows + Oracle заранее обречены на провал. И дейстивтельно, что может получиться хорошего в архитектуре, когда все сессии вынуждены существовать в рамках одного процесса (process thread) ? Однако, реальность часто отличается от наших о ней представлений..

Для начала замечу, что Windows не совсем обычная платформа для Oracle. Во-первых, некоторые возможности БД могут работать только под Windows ! Подобных предпочтений не сделано ни для каких-либо других платформ. Во-вторых, сейчас новые сборки для 11g появлются сначала для Windows..

Вернемся к архитектуре. Действительно, Oracle под Windows выполнен в архитектуре тредов (thread-based). Документация считает, что такая архитектура обладает следующими преимуществами:

- Faster context switching
- Simpler System Global Area allocation routine, because it does not require use of shared memory
- Faster spawning of new connections, because threads are created more quickly than processes
- Decreased memory usage, because threads share more data structures than processes

Не согласится сложно. Но несмотря на все эти преимущества, поддержка большого кол-ва сессий (>500) на платформе windows оказывается совсем не тривиальной задачей. В первую очередь нам нужно много памяти.

Если у Вас Oracle 32 bit - то без специальных ухищрений Вы получаете примерно 1.7 Gb памяти. Но нам хотелось бы по крайне мере 3 gb ! Вы можете продолжить эксперименты с помощью технологий PAE и /3G. Хотя и тут вместо обещанных 3 Gb вы получите не более 2.7Gb (http://www.oracle.com/technology/tech/windows/faq.html)

И только с помощью AWE ваша жизнь немного улучшается

On Windows 2000 and higher, Oracle interfaces with the Microsoft's Address Windowing Extensions (AWE), which allows the Oracle database to access to up to 64 GB of memory

Сама технология описана на сайте Микрософт: http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx

Как ей воспользоваться описано на Metalink Note Note:225349.1


Великолепная презентация конфигурации Oracle (32 и 64 bit) под Windows
http://www.microsoft-oracle.com/WebPages/DownloadFile.aspx?File=Oracle%20Memory%20Configuration%20for%20Windows.ppt


И очень хорошая новость - нам удалось уменьшить размер выделяемой по умолчанию памяти на трид (thread) с 1 Mb до 500K с помощью orastack

Как результат - Oracle 32 bit на 2-х процессорной машине с 6 Gb памяти
выдерживает более 300 сессий !


PS
Все равно на Windows так и не работет DCD в Oracle 9i ! (крик души :)))

Комментариев нет:

Отправить комментарий