28.01.2009, 15:56 | #1 |
Участник
|
Месяц жизни с Oracle. Впечатления и вопрос.
Недавича писал о переводе нашей Аксапты 3 на Oracle 10g. Поскольку частенько проскакивают вопросы что выбрать в
качестве БД, то хочу поделиться наблюдениями за месяц работы с Ораклой в боевом режиме. Поскольку я достаточно давно работаю с MSSQL (еще 7 видел ;-) ), то позволю себе некоторые выводы. Собственно база у нас не большая по Ораклячим меркам ~ 100G, юзеров обычно 120, в максимуме до 145 бывало. ТОчных замеров мы не делали, так что все в основном на ощущениях и опросе юзверов. Значится - 1. Производительность ОТДЕЛЬНЫХ операций типа разноски накладной, отгрузки, пересчета главной книги и т.п. если и выросла, то незначительно, что в общем и ожидалось при переходе. 2. ОБЩАЯ производительность работы системы выросла достаточно заметно - по отзывам юзеров, перестали проявляться некие "замирания" интерфейса на 1-2 сек., что тоже ожидалось - мое ИМХО, это связано с отсутствием блокировок на чтение в Oracle. 3. В корне изменилась СТРУКТУРА нагрузки на сервер БД и систему хранения! Вот это самое неожиданное что случилось. Мы юзаем 4-х процесорный сервер с достаточно хорошей системой хранения - IBM DS4700 на FC дисках. При работе SQL 2005 x64 процессоры были загружены ну на 40-50% в среднем, при этом были достаточно часто появлялись "пики" загрузки до 100% на 10-15 сек. При этом так-же наблюдались небольшие очереди к диску. Сейчас загрузка процессоров выровнялась 30-40% и практически отстутствуют пики нагрузки. Про диски вообще отдельный разговор - такое осчусчение, что он вообще не обращается к ним! ХЗ почему это происходит, но загрузка сервера в целом упала. Типа ИТОГО - считаю, что Аксапта "неправильно" работает с MSSQL - работа через серверные курсоры есть зло, какое только можно представить. Отсюда большинство траблов с блокировками. В общем пока я доволен как эта связка работает. Единственная бяка, которая обнаружилась пока, связана с работой Web пользователей, может кто в курсе что сделать нужно? В общем 1 АОС у нас работает только на портальных клиентов, при этом получается, что если клиент уходит с сайта (закрывает браузер), то через время должна отстрелиться и сессия на АОС и на БД соответственно, но на АОСе она закрывается, а вот Оракл почему-то не завершает процесс! Именно процесс - сессия завершается. В результате накапливаются процессы (v$process которые) ну и если дойдет до кол-ва указанного в настройках, то кирдык. Если перестартовать АОС, то все сбрасывается к норме. Time out connection в AOC установлено в 1200. Кто знает как победить это? Вотъ так! |
|
|
За это сообщение автора поблагодарили: mazzy (2), Logger (5), aidsua (1). |
28.01.2009, 16:12 | #2 |
Участник
|
Цитата:
Ну и в целом помогло вам решить проблемы использование оракла ? Новых не добавило ? Цитата:
Сообщение от egorych
В общем 1 АОС у нас работает только на портальных клиентов, при этом получается, что если клиент уходит с сайта (закрывает браузер), то через время должна отстрелиться и сессия на АОС и на БД соответственно, но на АОСе она закрывается, а вот Оракл почему-то не завершает процесс! Именно процесс - сессия завершается. В результате накапливаются процессы (v$process которые) ну и если дойдет до кол-ва указанного в настройках, то кирдык. Если перестартовать АОС, то все сбрасывается к норме. Time out connection в AOC установлено в 1200. Кто знает как победить это?
|
|
28.01.2009, 16:18 | #3 |
Участник
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось egorych; 28.01.2009 в 16:32. |
|
28.01.2009, 16:21 | #4 |
Участник
|
А что с регистром ?
|
|
28.01.2009, 16:32 | #5 |
Участник
|
Имеется ввиду вот это -
Название номенклатуры отображается маленькими буквами |
|
28.01.2009, 21:24 | #6 |
Moderator
|
Цитата:
то через время должна отстрелиться и сессия на АОС и на БД соответственно, но на АОСе она закрывается, а вот Оракл почему-то не завершает процесс
2. Поставить флаг "Leave connection running when idle" "Number of retries when creating connection" = 2 "Retry delay when creating connection" = 100 мс 3. dbkill.exe, идущий в комплекте с Oracle 4. Dead Connection Detection (если Oracle 9.2.* и выше) Ну и как способ обнаружения проблемы (если Oracle на Linux или любой другой правоверной системе): X++: SQL> select count(*) from v$session; COUNT(*) ---------- 122 SQL> host ps -ef | grep AXAPTA | wc -l 363 |
|
|
За это сообщение автора поблагодарили: axbegin (1). |
29.01.2009, 09:21 | #7 |
Участник
|
|
|
29.01.2009, 16:39 | #8 |
Участник
|
немножко в сторону техники
А выбор именно ds4700 был чем-т обоснован?
Чем не устроил например ds3400 + SAS. |
|
29.01.2009, 18:00 | #9 |
Участник
|
|
|
29.01.2009, 18:23 | #10 |
Участник
|
Занимаюсь подбором аналогичной железки поэтому и интересуюсь.
2 эти варината по цене отличаются в разы (в основном за счет дорогих дисков FC). При этом не ясно что не может дать вашей системе ds3400, что может ds4700. На текущий момент мое мнение что для Axapta FC не дает преимуществ. А насчет развития, думаю 48 дисков, которые поддерживает ds3400 вполне достаточно (14ТБ). Врядли вам понадобится 112, кот. поддерживает 4700 |
|
29.01.2009, 18:58 | #11 |
Участник
|
Вопрос в том, что у нас на массиве сидит не только Аксапта, но и несколько других сервисов (типа OLAP) но на других полках, поэтому решили брать с запасом ;-)
|
|
31.01.2009, 22:07 | #12 |
MCITP
|
Интересно, и помогли ли Вам какие-нибудь способы из указанных выше?
Встречался с такой проблемой на 9-ке, тоже на винде... На друх базах 9208, обе под третьей Аксаптой. Причём с веб-пользователями это никак не было связано даже близко... Происходило иногда, но очень редко. Особых закономерностей не прослеживалось. Причём рост "бесхозных" процессов был именно "пиками", не постоянный... Могло месяцами не появляться, а потом вдруг прорыв... Возможно проблема, конечно, в Виндовом Оракле, но с другой стороны, без связки с Аксаптой я такой проблемы не видел. "Настроечного" решения так и не нашёл, Dead Connection Detection на одной базе был включен, а на другой нет (вроде бы, надо уточнить этот момент). "Leave connection running when idle" - да. "Number of retries when creating connection" и "Retry delay when creating connection" вряд ли на что-то могут тут повлиять... Лечил скриптом, благо нечасто приходилось это делать. X++: Select P.* , 'orakill axdb ' || P.Spid From V$process P Where ( Addr ) Not In ( Select Paddr From V$session ) And Spid Is Not Null And Background Is Null Order By Spid; Обратите внимание, если у вас включено MTS, то сюда же попадут процессы Snnn & Dnnn. А также Pnnn, если идут какие-то параллельные процессы.. Но для оракла под Аксаптой ни тот ни другое не является обычным... Просто имейте ввиду, я предупреждал.
__________________
Zhirenkov Vitaly |
|
02.02.2009, 09:54 | #13 |
Участник
|
|
|
02.02.2009, 10:38 | #14 |
MCITP
|
Цитата:
Тогда может и поможет, проверим.
__________________
Zhirenkov Vitaly |
|