Вопрос к DBA или спецу по Oracle?

User avatar
kosty
Уже с Приветом
Posts: 324
Joined: 08 Jul 2002 02:05
Location: Простоквашино

Вопрос к DBA или спецу по Oracle?

Post by kosty »

Ситуация примерно такая. Есть железяка средней мощности под НТ. На ней [Oracle] с миллионами записей. там выполняются определенные вычисления и генерится [report]. Вычислений дофига и один [report] получается за 12 часов - два в сутки. Что маловато. Потому ставится еще одна точно такая железяка и там выполняется еще два [reports] в сутки. Что тоже маловато. В итоге получилось шесть одинаковых машин и, соответственно, 12 [reports] в сутки.

Сейчас возникла определенная потребность запихать все в одну машину.

Вопрос - а как? Даже если взять супер-пупер многопроцессорный монстр, то вытянет ли он 12 [reports] в сутки? Или повесить на этого монстра сразу 6 ДБ (я, честно скажу, больше двух под НТ не видел, под [UNIX] - три), то что на это скажет [OS]? И как они (ДБ) будут перформ? Слабоват я в этом. Т.е нужно 12 [reports] в сутки на одной машине. А как?

ПС. Оптимизация вычислительных процессов сейчас не рассматривается.

Спасибо.
Тиа-ту тиа-ту тааа-а-а-а
User avatar
camel
Новичок
Posts: 86
Joined: 06 Dec 2002 18:21

Re: Вопрос к DBA или спецу по Oracle?

Post by camel »

kosty wrote:Ситуация примерно такая. Есть железяка средней мощности под НТ. На ней [Oracle] с миллионами записей. там выполняются определенные вычисления и генерится [report]. Вычислений дофига и один [report] получается за 12 часов - два в сутки. Что маловато. Потому ставится еще одна точно такая железяка и там выполняется еще два [reports] в сутки. Что тоже маловато. В итоге получилось шесть одинаковых машин и, соответственно, 12 [reports] в сутки.

Сейчас возникла определенная потребность запихать все в одну машину.

Вопрос - а как? Даже если взять супер-пупер многопроцессорный монстр, то вытянет ли он 12 [reports] в сутки? Или повесить на этого монстра сразу 6 ДБ (я, честно скажу, больше двух под НТ не видел, под [UNIX] - три), то что на это скажет [OS]? И как они (ДБ) будут перформ? Слабоват я в этом. Т.е нужно 12 [reports] в сутки на одной машине. А как?

ПС. Оптимизация вычислительных процессов сейчас не рассматривается.

Спасибо.

если на 6 машинах одни и те же данные и запускаются только репорты, т.е. нет оперативной обработки транзакций, то конечно лучше базу перенести на один мощный сервер, лучше под UNIX. Чтобы не получилось медленнее, чем было, сервер естественно должен быть производительный - не обязательно супер пупер, но по крайней мере раз в 8 мощнее, чем отдельные серверы, на которых это сейчас работает. т.е. 8 процессорный должен вроде бы подойти
можно и несколько баз запустить на таком сервере, хоть 12, но не вижу смысла - скорости это не прибавит
User avatar
kosty
Уже с Приветом
Posts: 324
Joined: 08 Jul 2002 02:05
Location: Простоквашино

Re: Вопрос к DBA или спецу по Oracle?

Post by kosty »

camel wrote:если на 6 машинах одни и те же данные и запускаются только репорты, т.е. нет оперативной обработки транзакций, то конечно лучше базу перенести на один мощный сервер, лучше под UNIX. Чтобы не получилось медленнее, чем было, сервер естественно должен быть производительный - не обязательно супер пупер, но по крайней мере раз в 8 мощнее, чем отдельные серверы, на которых это сейчас работает. т.е. 8 процессорный должен вроде бы подойти
можно и несколько баз запустить на таком сервере, хоть 12, но не вижу смысла - скорости это не прибавит


А можно немного подробнее, пожалуйста?

Шесть одинаковых серверов под NT с Oracle. Xeon 2.4GHz, 512K, 2x146GB.

Процесс примерно такой. Raw data - 100-150 млн записей. На основании спецификасии отбирается до 1млн записей в working table. С отобранной датой выполняются статистические вычисления, результаты - в final table. Из final data рисуются репорты. Потом вся working/final data выкидывается, и - все заново с новой спецификацией.

Вопрос тот же. Можно ли это все сделать на одной машине без потери производительности. Какая примерно это должна быть машина? Windows или UNIX? 1 ДБ или шесть? Как шесть уживутся вместе. Если одна, как исполнять: по одному в очередь или параллельно? И т.д.

Спасибо.
Тиа-ту тиа-ту тааа-а-а-а
User avatar
chepackav
Уже с Приветом
Posts: 1513
Joined: 03 Apr 2001 09:01
Location: London, UK

Re: Вопрос к DBA или спецу по Oracle?

Post by chepackav »

А оптимизировать что-нибудь в базе пробовали? Индексы там всякие построить и прочее .... а то против table scans никакое железо не поможет.
User avatar
kosty
Уже с Приветом
Posts: 324
Joined: 08 Jul 2002 02:05
Location: Простоквашино

Re: Вопрос к DBA или спецу по Oracle?

Post by kosty »

chepackav wrote:А оптимизировать что-нибудь в базе пробовали?


Да, конечно. Ясно, что нельзя сделать идеально, но на данном этапе считается, что лучше не можем. Да лучше-то и не нужно. Нужно одну машину вместо шести.
Тиа-ту тиа-ту тааа-а-а-а
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Re: Вопрос к DBA или спецу по Oracle?

Post by Mark »

kosty wrote:
chepackav wrote:А оптимизировать что-нибудь в базе пробовали?


Да, конечно. Ясно, что нельзя сделать идеально, но на данном этапе считается, что лучше не можем. Да лучше-то и не нужно. Нужно одну машину вместо шести.


Насчет оптимизации Вас не просто так спрашивают, потому как Ваше узкое место именно в ней, а то что вы поставите например одну RISC (Sun/IBM/HP)машину с 8/10/20 процессорами и дисковой стойкой EMC вам конечно поможет - но не так сильно как оптимизация. А про затраты на эту железяку я уж не говорю. Это вам не интеловые боксы с Зеонами.
Ctrl-C
Уже с Приветом
Posts: 6333
Joined: 14 May 2002 23:24
Location: UA -> VA

Re: Вопрос к DBA или спецу по Oracle?

Post by Ctrl-C »

Mark wrote:Насчет оптимизации Вас не просто так спрашивают, потому как Ваше узкое место именно в ней

Присоединяюсь.
Ядерная война может испортить вам весь день.
User avatar
kosty
Уже с Приветом
Posts: 324
Joined: 08 Jul 2002 02:05
Location: Простоквашино

Re: Вопрос к DBA или спецу по Oracle?

Post by kosty »

Ctrl-C wrote:
Mark wrote:Насчет оптимизации Вас не просто так спрашивают, потому как Ваше узкое место именно в ней

Присоединяюсь.


Оптимизировали, скока хватило мозгов. :D Об этом можно спорить, но задача другая. Все нормально работает, все устраивает. Но, нужно (если можно) в одной коробке. Физически.

Это внутрикорпоративные финансовые взаиморасчеты. У нас в division нет своей бухгалтерии, потомы мы отчсляем копейку на бухгалтеров и т.д. За техподдержку и обслуживание одного сервера корпорация берет 15К/год. Шесть коробок - 90К. Я думаю, как сделать одну коробку. Я косты катаю. Пытаюсь. :D
Тиа-ту тиа-ту тааа-а-а-а
User avatar
camel
Новичок
Posts: 86
Joined: 06 Dec 2002 18:21

Re: Вопрос к DBA или спецу по Oracle?

Post by camel »

kosty wrote:
camel wrote:если на 6 машинах одни и те же данные и запускаются только репорты, т.е. нет оперативной обработки транзакций, то конечно лучше базу перенести на один мощный сервер, лучше под UNIX. Чтобы не получилось медленнее, чем было, сервер естественно должен быть производительный - не обязательно супер пупер, но по крайней мере раз в 8 мощнее, чем отдельные серверы, на которых это сейчас работает. т.е. 8 процессорный должен вроде бы подойти
можно и несколько баз запустить на таком сервере, хоть 12, но не вижу смысла - скорости это не прибавит


А можно немного подробнее, пожалуйста?

Шесть одинаковых серверов под NT с Oracle. Xeon 2.4GHz, 512K, 2x146GB.

Процесс примерно такой. Raw data - 100-150 млн записей. На основании спецификасии отбирается до 1млн записей в working table. С отобранной датой выполняются статистические вычисления, результаты - в final table. Из final data рисуются репорты. Потом вся working/final data выкидывается, и - все заново с новой спецификацией.

Вопрос тот же. Можно ли это все сделать на одной машине без потери производительности. Какая примерно это должна быть машина? Windows или UNIX? 1 ДБ или шесть? Как шесть уживутся вместе. Если одна, как исполнять: по одному в очередь или параллельно? И т.д.

Спасибо.

ок, немного подробнее:

Можно ли это все сделать на одной машине без потери производительности? конечно, можно (и нужно)

Какая примерно это должна быть машина? примерно 4-8 процессоров, память 4G, диски соответствующие, чтобы база поместилась и хотя бы последний бакап.

Windows или UNIX? лучше Unix, но Windows тоже можно

1 ДБ или шесть? лучше 1.

Как шесть уживутся вместе? прекрасно уживутся, если достаточно памяти, но не вижу в этом смысла - см. выше

Если одна, как исполнять: по одному в очередь или параллельно? конечно, параллельно - иначе зачем 8 процессоров?

насчет оптимизации тут люди правильно говорят - это может дать выигрыш гораздо больший, чем если железо поменять, но раз уж вы сразу оговорили, что это в данный момент не обсуждается, то .. :pain1:
User avatar
kosty
Уже с Приветом
Posts: 324
Joined: 08 Jul 2002 02:05
Location: Простоквашино

Re: Вопрос к DBA или спецу по Oracle?

Post by kosty »

camel wrote:ок, немного подробнее:


Спасибо-приспасибо. :) Я попозже еще спрошу, можно?
Тиа-ту тиа-ту тааа-а-а-а
User avatar
camel
Новичок
Posts: 86
Joined: 06 Dec 2002 18:21

Re: Вопрос к DBA или спецу по Oracle?

Post by camel »

kosty wrote:
Ctrl-C wrote:
Mark wrote:Насчет оптимизации Вас не просто так спрашивают, потому как Ваше узкое место именно в ней

Присоединяюсь.


Оптимизировали, скока хватило мозгов. :D Об этом можно спорить, но задача другая. Все нормально работает, все устраивает. Но, нужно (если можно) в одной коробке. Физически.

Это внутрикорпоративные финансовые взаиморасчеты. У нас в division нет своей бухгалтерии, потомы мы отчсляем копейку на бухгалтеров и т.д. За техподдержку и обслуживание одного сервера корпорация берет 15К/год. Шесть коробок - 90К. Я думаю, как сделать одну коробку. Я косты катаю. Пытаюсь. :D

шесть баз администрировать тоже дороже выйдет, чем одну; да еще процедуры загрузки и синхронизации данных приходится наверное запускать в 6-кратном количестве; кстати, а ДБА у вас бесплатный, что ли? или его вообще нет? :)
это тоже аргументы в пользу одной базы на одном сервере
User avatar
kosty
Уже с Приветом
Posts: 324
Joined: 08 Jul 2002 02:05
Location: Простоквашино

Re: Вопрос к DBA или спецу по Oracle?

Post by kosty »

camel wrote:шесть баз администрировать тоже дороже выйдет, чем одну; да еще процедуры загрузки и синхронизации данных приходится наверное запускать в 6-кратном количестве; кстати, а ДБА у вас бесплатный, что ли? или его вообще нет? :)
это тоже аргументы в пользу одной базы на одном сервере


Не, DBA не бесплатный - корпоративный. Но ведь у меня сейчас и так 6 DB. И запускаем по 6 раз. Но если 6 DB на одной машине вдруг оказалось бы лучше, то дороже не станет. Хотя одна, конечно же, выглядит привлекательнее, если только хуже не станет.
Тиа-ту тиа-ту тааа-а-а-а
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: Вопрос к DBA или спецу по Oracle?

Post by tengiz »

kosty wrote:...Но ведь у меня сейчас и так 6 DB. И запускаем по 6 раз. Но если 6 DB на одной машине вдруг оказалось бы лучше, то дороже не станет. Хотя одна, конечно же, выглядит привлекательнее, если только хуже не станет.

Если даже оставить в стороне попытки оптимизировать 12-часовую процедуру вычисления отчёта, то анализ узкого места в системе всё равно нужно сделать. Иначе непонятно, что конкретно в этой одной системе должно быть в 6 раз больше/мощнее/производительнее, чтобы результирующее время подготовки отчётов было не хуже. Например, если все 6 исходных систем 99% времени из этих 12 часов проводят в IO, то для новой системы скорее всего будет достаточно шестикратного запаса по количеству физических дисков + соответствующей пропускной способности шины ввода/вывода + разумеется некоторого дополнительного количество памяти. Если затык с CPU - то это совсем другая история. Поэтому так или иначе, но разобраться и найти узкое место придётся. Но как только такой анализ будет добросовестно произведён, есть очень хороший шанс, что будет ясно, где можно будет оптимизировать собственно исходную задачу. Возможно, удастся вместо 12 часов ужать отчёты в 1 час - и тогда вообще ничего нового покупать не будет нужно вовсе :).
Cheers
User avatar
Дед Мороз
Уже с Приветом
Posts: 4412
Joined: 06 Nov 2003 17:03
Location: TX

Post by Дед Мороз »

1. Полностью согласен с Тенгизом.



2. Сколько длится каждый из этапов
В частности: сколько времени занимает выборка (только выборка!)
1 млн. записей из 150 млн ?
сколько стат. вычисления ?
сколько запись в final table ?

На каждом из этих этапов, что является bottleneck ?
Это я к тому, что оптимизировать и (самое главное), может на разных этапах bottleneck разный ?
Тогда можно запускать репорты через 2-4-6 часов, и пока один мучает диск, другой будет съедать процессор ....
(ессно, так в 6 раз не улучшишь, но в 2 - может быть )
User avatar
NightFlier
Уже с Приветом
Posts: 261
Joined: 09 Mar 2003 11:22

Post by NightFlier »

Мои предложения:

1) 6 ДБА выгнать, так как это нужно быть глюпым совсем, чтобы в 21 веке до сих пор по 12 часов отчёты считать.

2) Переносите базу на Мейнфрейм, там у вас любой вычислительной мощности хватит.

Я участвовал в проектах, где счётные финансовые задачи оптимизировались с двух недель до 40 минут, с итоговым переносом с восьмипроцессорного кластера на однопроцессорную Ультру. Архитектура процесса у вас хромает.

Return to “Вопросы и новости IT”