|
|
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Может ли Оракл автоматически отдавать неиспользуемую память назад операционной системе, если система испытывает недостаток памяти ? Или этим заправляет только администратор ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 12:44 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Может. При завершении сеанса серверный процесс убивается, и занимаемая им память отдается в ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 15:17 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
я имел ввиду такую ситуацию : предположим, под кэш отдано 128 метров. Сервер использует всю эту память, но сама операционка испытывает недостаток пямяти и постоянно свопиться, что влияет в том числе и на процесс Оракла. Может-ли Оракл почувствовать это и автоматически поделиться памятью ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 15:34 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerSя имел ввиду такую ситуацию : предположим, под кэш отдано 128 метров. Сервер использует всю эту память, но сама операционка испытывает недостаток пямяти и постоянно свопиться, что влияет в том числе и на процесс Оракла. Может-ли Оракл почувствовать это и автоматически поделиться памятью ?Это надо переводить так: "может ли Oracle почувствовать, что администратор - разгильдяй и автоматически поделиться памятью?" Ну и как ты думаешь? Какой ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 16:17 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
>>Ну и как ты думаешь? Какой ответ? Получается, ответ выглядит так : распределением занимается только админ. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 16:33 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Почитай по управлению памятью в винде на уровне страниц. Оракл, как ПРИЛОЖЕНИЕ, не лочит все свои буфера в памяти, и отдает, если они больше нужны другим. Дурной привычки прочесывать без причины ВСЮ свою память, выталкивая ее в RAM, за ним не наблюдал. Вполне нормально живет и работает, отожрав на 25 сессий (3 активных) около 1G SGA+PGA (по своей статиcтике), и при этом занимая в RAM около 150M. Просто ненужная память сбросилась в своп, и будет лежать там, пока не затребуется сессией. Другое дело, если в настройках прописано лоченье SGA - тогда не отдаст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 18:53 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
RAVEN Оракл, как ПРИЛОЖЕНИЕ, не лочит все свои буфера в памяти, и отдает, если они больше нужны другим. Каким образом он определяет, что память нужна кому-то другому ? Вопрос в догонку: каким образом Оракл берет себе память из общесистемного пула ? Когда возникает потребность в дополнительных, скажем, 5 МВ, просто запрашивает их у системы ? А когда возвращает ? RAVEN Просто ненужная память сбросилась в своп Какой смысл выталкивать данные в свопфайл, если есть доступная оперативка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 19:56 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
в 10ке есть автоматический тюнинг, задаешь максимальный размер SGA а он уже сам берет сколько надо в заданых пределах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 19:59 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
>>а он уже сам берет сколько надо в заданых пределах А когда отдает назад ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 20:09 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS>>а он уже сам берет сколько надо в заданых пределах А когда отдает назад ? там все просто. при старте оракл жестко забирает память под буфера. их изменить можно командой alter system, автотюнинг это просто джоб который смотрит статистику и иногда выполняет alter system http://www.oracle.com/technology/pub/articles/10gdba/week17_10gdba.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 20:12 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
там в статье вроде про деление памяти внутри адресного пространства Оракл между его компонентами. А меня интересовало именно взаимодействие сервера с операционной системой. Т.е. задан верхний предел, в этом пределе сервер запрашивает себе память из общесистемного пула ? А если ему не весь обьем нужен, берет меньше ? И все-таки, как он возращает память системе ? Положим, предел = 600 МВ. Через некоторое время серверу достаточно только 300 метров, остальные 300 метров возвращаются системе, или нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 20:26 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
да оставит опереционке "лишние", у меня например сейчас 700 метров занято, хотя ораклу отдал 2.5 гига. но это имхо плохо, теперь жаба может отобрать у него память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2005, 22:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
хорошо, но как все-таки насчет моего первоначального вопроса ? Предположим, есть гигабайт оперативки. Серверу задаем верхний предел в 700 метров. Сервер их все потребляет под свой внутренний кэш. Однако операционная система вдруг захотела, к примеру, 350 метров. Вопрос в том, отдаст-ли сервер 50 своих кровных мегобайт системе, что-бы не допустить ее свопинга ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
нет конечно, взять или забрать решает ось, а не прикладуха. если ось решит то она у оракла ничего не спросит и свалит его в своп. а дальше уже идут навроты конкретной и к субд отношения имеет слабое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:26 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Серверу задаем верхний предел в 700 метров. Сервер их все потребляет под свой внутренний кэш. У Оракла есть структуры памяти SGA, и PGA. Под каждую пишется предел. SGA - куда входит буферный кэш, в частности, является фиксированной. Поэтому речи об ее освобождении не идет. А PGA - другое дело. Там память используется серверными процессами, обслуживающими запросы. Там есть разные варианты. На 9 - ке можно задать верхний передел для всех сессий, но можно и для каждой. Кроме того, сессия может работать либо с выделенным сервером, либо с разделяемым. В случае выделенного по мере появления сессий берется память и освобождается по их завершении. В случае разделяекмого - указывается скока может быть серверных процессов на один диспечер. Там я не в курсе, всегда ли запущены все серверные. Но думаю память динамически выделяется и освобождается по мере работы. Есть еще стр-ра UGA. Она в случае выделенного входит в PGA, а разделяемого в SGA. Т.е. SGA - фиксированная и не должна освобождаться, как я надеюсь. А PGA - динамическая. У Оракла есть средства отслеживания здоровья БД за определенные периоды, на основе которых, можно понять завышено или наоборот занижено выделение памяти для его структур памяти. Если под SGA длжно выделяться 400, а PGA - 300 из 700 Вами указанных, то я расчитываю, что 400 никогда не будет отдано. Потому что мне надо точно знать скока выполняются запросы у заказчика. А если там будет 200 вместо 400 в какой-то момент, а в какой-то 400, то это уже слишком. Хватит и того, что процессор кто-то левый может занять. А серверны процесс, если недостаточно памяти - пусть лучше даст отказ на запрос, чем перейдет в своп. Пусть наращивают ресурсы. Из одной овчины семь шапок не сошешь. Вообще сервер БД должен заниматься только БД у серьезного заказчика. Иначе доиграемся. Он будет свои телеги писать бесконечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:24 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
более менее понятно. Вот оно - отличие тесно интегрированной с системой СУБД (это камень в огород кроссплатформенности ;). MSSQL распоряжается памятью учитывая не только свои интересы, а очень динамично. Ему нет надобности указывать, типа жри не больше гигобайта. В Оракле, вы выделили память, а только потом пытаетесь определить, насколько удачно это получилось. SQL-Server запрашивает память по мере необходимости, специальный механизм, lazywriter, регулярно обходит кэш и сбрасывает грязные страницы на диск, выкидывает из кэша ненужные планы запросов и т.д. Освободившаяся память отправляется в freelist, т.е. в дальнейшем может быть использована повторно. Но, если сервер видит, что операционка испытывает недостаток памяти, освободившаяся память идет не в freelist, а в общесистемный пул. А интересно, в Оракл, если стоит гигобайт оперативной памяти, можно ему разрешить использовать, например, 950 метров ? И если он их все сожрет, как будет чувствовать себя система ? Конечно, грамотный админ сумеет выделить память так, что-бы никого не обидить, только вот зачем ему заниматься той работой, которая может выполняться автоматически ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:31 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
>более менее понятно. Вот оно - отличие тесно интегрированной с системой СУБД (это камень в огород кроссплатформенности ;). Када я отвечал, я знал, что это поиск камней в огород кроссплатформенности. А точнее в огород открытых технологий, поскольку переносимость БД на разные платформы важный признак таковых технолгий. Но я не уверен, что это реальный камень в огород кросплатформенности, поскольку вряд ли такое управление памятью обусловленно кросплатфоменностью. Нет никаких трудностей на С выделять и освобождать память на многих платформах. И если надо, то, возможно, появится возможность выбирать фиксированная SGA или нет. Я мог бы подкинуть Вам более подходящие аргументы такого рода в огород кросплатформенности. Но дело в том, кросплатформенность перевесит тысячи таких аргументов. Потому в литре эти аргументы практически не используются. Чаще они появляются как придумки в разных обоснованиях заинтересованных продвигать MS SQL решения фирм. >Конечно, грамотный админ сумеет выделить память так, что-бы никого не обидить, только вот зачем ему заниматься той работой, которая может выполняться автоматически ? Ну при установке БД Оракл сам выбирает исходя из размеров оперативки. И в простых случаях - это прокатывает. Многие и не в курсах про Оракловые структуры памяти, используя его по несколько лет. И не тока разработчики, но и админы. А если не простые случаи, то тут уже не до других прог в оперативке - это уже какой-то критичный по ресурсам проект. Какие-нить сотни гигабайт с требованиями получать из них инфу в неск сек. Кроме того, выбор оптимальной памяти не всегда есть задача чисто алгоритмическая. Нужно собирать статистику. Причем статистика статистике рознь. Например, если была закачка данных это одно, а если штатная работа другое. Плюс изменяющийся объем БД. И на всю SGA никто не будет тратить всю оперативку, где тада будет PGA? А она динамическая. Базовая и пиковая - нормальный подход для использования ресурсов не тока в инфотехнологиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 20:01 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
vadiminfo Но дело в том, кросплатформенность перевесит тысячи таких аргументов Я по-моему, уже говорил, что кроссплатформенность - это плюс в основном чисто теоретический. Все равно Оракл стоит в большинстве случаев под юниксами. А система, ориентированная на одну платформу, берет все ее плюсы vadiminfo Ну при установке БД Оракл сам выбирает исходя из размеров оперативки. Установка и реальная работа - две разные вещи. так что прокатывать будет и самом деле только в простых случаях. vadiminfo А если не простые случаи, то тут уже не до других прог в оперативке - Дык другие проги в оперативке могут быть системными сервисами. Зажав их, обломаете и Оракл то-же, он ведь не в вакууме работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 21:51 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Я по-моему, уже говорил, что кроссплатформенность - это плюс в основном чисто теоретический. Все равно Оракл стоит в большинстве случаев под юниксами. А система, ориентированная на одну платформу, берет все ее плюсы Вы то может и говорили, но что это меняет? Есть общепризнанные вещи в инфотехнологиях. Неужели Вы верите, что кого-то в этом можно сегодня убедить? Время Эсэмэсок прошло. Кросплатформенность - это плюс практический и существенный. Оракл крутится на самых навороченных платформах. Вот у нас зарубежный заказчик потребовал, чтобы сервак крутился под OpenVMS. У нас все разработали практически на других платформах и у заказчика это работает. Эта система у нас крутится у разных заказчиков на 4-х платформах, включая Винды. Ориентированность на одну платформу не гарантирует, как мы видим, взятия своего. Она, например, сама по себе никак не поможет блокировочнику ровняться с версионником. Уверен, что будь MS SQL - кросплатформенным, Вы не искали доводов в пользу платформозависимых систем. StalkerS Установка и реальная работа - две разные вещи. так что прокатывать будет и самом деле только в простых случаях. Не в самых простых, а простых в смысле отсутствия исключительных требований к ресурсам. Как правило, считается, что для большинства случаев, если специально коряво не настроили, настройками можно выиграть в общем не более 10% производительности. Основной выигрыш все равно дает оптимизация логики приложения. А там где нужны особые настройки, там уже врядли автоматизации хватит. Тут без интеллектуальных усилий не обойтись. Т.е. только алгоритмический способ, скорее всего, не поможет, а у нас же не системы искусственного интеллекта, чтобы обучаться. StalkerS Дык другие проги в оперативке могут быть системными сервисами. Зажав их, обломаете и Оракл то-же, он ведь не в вакууме работает Системные сервисы - это не то, что должно быть ресурсоемким. По крайней мере, на серваке БД. Тогда такая ОС вообще для других целей предназначена, и родным СУБД тоже не поможет. Она им будет тока писать, про недопустимое обращение к памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 22:56 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
Мне это все больше напоминает спор приверженцев Windows и Linux. Одни говорят: "Зачем думать? Все сделает компьютер", другие возражают: "Домохозяйкам думать и впрямь не надо, а мы думать обязаны." ------------------------------------------------------- Автор благодарит алфавит за любезно предоставленные ему буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 11:18 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
vadiminfo Кросплатформенность - это плюс практический и существенный Я уже обьяснял свою позицию : Плюсы от кросплатформенности : можно не думать, куда ее поставят Плюсы от некросплатформенности : более тесная интеграция с системой. Каждый выбирает свой плюс ;) vadiminfo Ориентированность на одну платформу не гарантирует, как мы видим, взятия своего. Она, например, сама по себе никак не поможет блокировочнику ровняться с версионником. Может и не гарантирует, зато много чего дает. А блокировочнику на версионника равняться надо только в определенных ситуациях, в других случаях, уже версионнику приходится равняться на блокировочник. vadiminfo А там где нужны особые настройки, там уже врядли автоматизации хватит. Тут без интеллектуальных усилий не обойтись. Т.е. только алгоритмический способ, скорее всего, не поможет Не рассказывайте сказки. Если следовать вашим словам, то нам надо надевать шкуры, брать топоры и идти охотиться на мамонтов. Никакой техники, все вручную и надежно. vadiminfo Системные сервисы - это не то, что должно быть ресурсоемким. Не так-уж и мало они потребляют. И априори заявлять, что оставив системе, положим, 50 МВ, и все будет в ажуре, довольно самонадеяно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 22:05 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerSПлюсы от некросплатформенности : более тесная интеграция с системой.Я не знаю как работает MS SQL Server, можно узнать как он интегрирован с MS Windows -- например какие функциональные возможности OS он использует, которые не использует Oracle на той же платформе? Каков выигрыш от этого? В чём он выражается? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 22:08 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
StalkerS Плюсы от некросплатформенности : более тесная интеграция с системой. Ну тада моя позиция: такой плюс, с одной стороны, говорит о недостатках ОС, так ее задача обеспечить всем приложениям максимальные возможности в силу ее основного назначения, с другой, - о сильной зависимости модулей системы СУБД от ОС. Это противоречит принципам модульной декомпозиции системы в целом. Теперь что-то поменять в ОС (пропатчить), можно ждать сюрпризов от СУБД? StalkerS А блокировочнику на версионника равняться надо только в определенных ситуациях, в других случаях, уже версионнику приходится равняться на блокировочник. Думаю, что эти определенные ситуации, когда блокировочнику на версионника равняться надо, составляют практически все возможные ситуации, и другие ситуации носят скорее искусственный характер. И MS SQL рано или поздно полностью перейдет в версионники, если к тому времени не появится каких-то более эффективных моделей транзакций. StalkerS Не рассказывайте сказки. Если следовать вашим словам, то нам надо надевать шкуры, брать топоры и идти охотиться на мамонтов. Никакой техники, все вручную и надежно. Вы в курсе, что есть задачи искусственного интеллекта? Это те что плохо поддаются алгоритмическуму решению. Для них разрабатывают всякие нейронные сети и проч. А наши компы - практически компы фон Неймана. Потому все еще нуждуются в естественном интеллекте при управлении. К примеру, оптимизатор может не знать каких-то особенностей распределения данных по значениям, знание о которых может играть роль для выбора наиболее оптимального плана запроса. Ведь системе чтобы это "узнать" нужно не просто просканировать таблы, но и проанализировать значения (например мат статистику какую-то хотя бы провести). А разработчик может знать это еще до появления самих данных в БД. А уж как Винды настраиваются, я в курсе - "Приложение обратилось к недопусимой область памяти" - все свободны. Более того, нас учили в институте (сказки рассказывали), что любая прога обязана иметь ошибки. (на самом деле теория надежности исходит из обязательности отказов). Т.е. исходить надо из этого. И потому возможности ручнуго управления сложной системы (а СУБД считаются сложными) на многие случаи - всегда плюс. StalkerS Не так-уж и мало они потребляют. И априори заявлять, что оставив системе, положим, 50 МВ, и все будет в ажуре, довольно самонадеяно. Хорошо, оставлю больше. Память не миллионы баксов стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 00:46 |
|
||
|
Управление памятью
|
|||
|---|---|---|---|
|
#18+
авторПолучается, ответ выглядит так : распределением занимается только админ. А кто у вас вообще занимается настройкой сервера? Из ваших постов я делаю вывод, что админ - абсолютно лишняя штатная единица. В моей организации - работа БД должна быть непрерывной , мне абсолютно неинтересны задачи на сервере, которые могут негативно сказаться на производительности БД , я не считаю, что БД поддерживающая бизнес процессы, должна делиться с какими-бы то нибыло приложениями своими ресурсами, для таких приложения есть отдельные сервера , кроме кривых рук администратора я вообще невижу ситуаций, когда система вдруг потребует от Oracle освободить память или выкинуть Oracle в своп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 10:09 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33008122&tid=1973815]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 417ms |

| 0 / 0 |
