Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#257<< #258 |
СОДЕРЖАНИЕ Контроль VAS в SQL Server 2005, продолжение…
По материалам статьи Slava Oks:
Tracking VAS in Yukon, cont... Некоторые из Вас, возможно, скучали, читая предыдущую статью автора Обзор Virtual Address Space - VAS. Автор понимает, что тема VAS до этого была многократно освещена множеством авторов и ей было уделено много времени, и Вы наверняка знаете об этом больше, чем даже хотелось бы знать . Однако, наберитесь, пожалуйста, терпения. Автор хочет дать достаточный предварительный обзор темы, что бы читатель смог легко ориентироваться в предлагаемом ему материале. Автор хотел бы показать ту часть внутренней организации операционной системы, без которой будет сложно охватить тему, о которой все мы хотим узнать побольше: "Управление памятью в SQL Server". Поэтому автор продолжит указанную им тему в следующий раз . Сегодня автор предлагает Вам небольшое развлечение. Ранее мы обсудили VAS и то, как можно оценить его использование с помощью специального представления vasummary, которое обсуждалось в предыдущей статье: Контроль VAS в SQL Server 2005. Теперь, учитывая возможности этого представления и других dmv - представлений, фактически мы можем получить больше информации о VAS в SQL Server. Давайте же сделаем это! Как многим из Вас известно, размер стека потока SQL Server равен 512 КБ (0x80000). Это означает, что каждый поток для своего стека резервирует в VAS 512 КБ. Есть ещё и дополнительные 4 КБ в VAS, которые используется для Thread Environment Block (TEB) - блока окружения потока, но в данном случае это не очень важно. Вопрос заключается в следующем: имея представление vasummary, возможно ли оценить число потоков, выполняющихся в данный момент на сервере. Ответ - ДА! И вот нужный запрос:
Вот это да, как всё оказалось просто ! Но это только оценка. Таким же образом можно получить реальное число потоков, если использовать системное представление: dm_os_threads.
Как можно видеть, количества потоков в этих двух запросах различны. Почему? Причина может быть в том, что другой компонент резервировал в SQL Server область VAS точно такого же размера. Обычно находится немного таких компонент. Это означает, что первый из запросов более достоверно отражает число потоков в SQL Server. Только, пожалуйста, имейте в виду, что первый запрос более дорог в плане исполнения, чем второй. В реальной жизни, для получения имеющихся в процессе SQL Server потоков, предпочтительнее использовать показывающее потоки dmv. Наверное, Вы не забыли, что всё это мы проделывали только для развлечения . Мы должны помнить, что значение параметра максимального числа потоков сервера в sp_configure фактический не является верхним пределом для реального числа потоков в SQL Server. Потоки могут быть созданы разным библиотеками dll, включая netlibs, rpc, xps и т.д.. Во многих случаях мы никак не можем управлять такими потоками, но, исполняя представленный выше запрос, мы получим реальную информацию обо всех потоках в VAS SQL Server, а не только о потоках, созданных нами. Можно получить и больше информации об использование потоков в VAS. Информирующее о потоках dmv-представление включает информацию о стеке потока и о его TEB:
Используя это dmv и системное dm_os_virtual_address_dump, фактически можно показать поток в VAS. Ну, разве это не круто? Автор не будет приводить здесь такой запрос, оставляя его реализацию читателю, в качестве тренировки... Прежде, чем мы перейдём к загруженным модулям, автор хотел предложить Вам задуматься над следующим, ну хотя бы немного : Как VAS и получаемый из dmv-представлений результат отличались бы, если бы SQL Server был запущен в режиме "Fiber mode"? Пока же, автор отложит ответ на этот вопрос до того момента, пока мы не поговорим о планировании. Из всего вышесказанного мы узнали способ оценки числа потоков, запущенных в SQL Server. К сожалению, не возможно использовать представление vasummary для того, что бы узнать об использовании VAS библиотеками dll. Причина в том, что разные dll имеют разные размеры. Однако мы можем использовать системные представления: dm_os_loaded_modules и dm_os_virtual_address_dump, которые позволяют получить информацию о загруженных dll.
Как и в случае с представлением для потоков, соединяя это представление с системным представлением dm_os_virtual_address_dump, Вы сможете получить информацию о расположении dll внутри SQL Server VAS. Поскольку Вы теперь понимаете, что это представление очень важно для понимания того, как используется VAS SQL Server, всё это даст Вам хорошую индикацию того, что запущено в VAS. Во многих случаях DBA и разработчики, при использовании разнообразных внешних компонент, просто не имели инструментов для того, что бы наблюдать их загрузку в VAS SQL Server. Сейчас автор готов продемонстрировать, что SQL Server может работать вне VAS... Когда сформировался дамп загруженных dll, автор был просто потрясен тем, как много всего разного загрузилось в пространство процесса SQL Server. Некоторые из загруженных туда dll несут функциональность только пользовательского интерфейса. Для чего понадобилось загружать библиотеки пользовательского интерфейса в пространство сервера? Автору было смешно . Ну хорошо, у нас было достаточно развлечений на сегодня, ведь так? В следующий раз автор продолжит свой рассказ о ресурсах памяти другого типа. Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)
По материалам статьи Carl Rabeler и Dave Wickert, Microsoft Corporation:
Microsoft SQL Server 2000 Analysis Services Operations Guide Содержание
Введение Конфигурирование Analysis Services После установки Analysis Services Вам всегда следует проверять настройки конфигурации, некоторые из которых обычно должны быть изменены. Большинство настроек конфигурации могут быть изменены с помощью Analysis Manager, хотя есть и такие, которые Вы должны менять непосредственно через реестр Windows. В этой статье рассматриваются самые важные настройки конфигурации. Для информации о других настройках, связанных с производительностью, зайдите на сайт Technet Web (http://www.microsoft.com/technet) и посмотрите статью "Microsoft Analysis Services Performance Guide". Для информации об общем диапазоне записей реестра для Analysis Services, зайдите на сайт библиотеки Microsoft MSDN (msdn.microsoft.com) и посмотрите статью "Registry Entries for Microsoft SQL Server 2000 Analysis Services". Если Вы хотите отслеживать ключи реестра, которые были созданы Analysis Services (или любым другим приложением Windows), то для этого Вы можете использовать различные утилиты, которые подходят для платформы Windows. Одной из широко распространенных утилит является Regmon от Sysinternals (http://www.sysinternals.com/). Эта бесплатная утилита мониторинга реестра показывает приложения, которые обращаются к реестру, ключи реестра, к которым обращаются эти приложения, и данные, которые эти приложения читают из реестра или пишут в него. Замечание: некоторые возможности Analysis Services доступны только в Enterprise Edition. Используйте скрипт DSO, который Вы найдете ниже в Приложении J, "Скрипт для определения версии Analysis Services", чтобы определить версию Analysis Services, которую Вы используете. Настройки памяти Достаточное количество памяти для Analysis Services увеличивает скорость выполнения запросов и общую производительность работы. Правильная настройка доступной памяти максимизирует ее использование, ограничивает использование ресурсов диска для обработки информации и предотвращает слишком быстрое удаление записей из кэша чистящим потоком. Количество памяти, используемое Analysis Services, регулируется несколькими настройками памяти:
- Настройки максимального и минимального размера памяти Значения этих настроек установлены по умолчанию или на основе объема физической памяти в компьютере во время установки. Настоятельно рекомендуется изменить некоторые из этих настроек памяти. Настройки максимального и минимального размера памяти Analysis Services использует набор средств для удержания объема выделенной ей памяти в рамках, определенных двумя параметрами на вкладке Environment диалогового окна Server Properties в Analysis Manager: параметром Memory conservation threshold (порог резервирования памяти) и Minimum allocated memory (минимальная выделенная память) - значения HighMemoryLimit и LowMemoryLimit в реестре. Значение параметра Memory conservation threshold по умолчанию - объем физической памяти компьютера во время установки. Значение параметра Minimum allocated memory по умолчанию - половина физической памяти компьютера во время установки. Если Вы измените объем памяти компьютера после установки, то Вам нужно будет вручную отредактировать эти значения. Иначе Analysis Services может неэффективно использовать текущий объем физической памяти компьютера. Analysis Services использует поток очистки памяти для уменьшения объема памяти, выделенной для Analysis Services, когда этот объем достигает среднего значения между настройками Memory conservation threshold и Minimum allocated memory. Когда поток очистки памяти активирован, он начинает удалять записи из кэша результатов запросов, основываясь на алгоритме издержек и выгоды, который принимает во внимание множество факторов, включая такие, как часто эти данные используются в кэше результатов запроса, ресурсы, необходимые для повторного получения записей, и пространство, занимаемое этими записями. По умолчанию поток очистки памяти работает с приоритетом ниже среднего. Частота, с которой запускается этот поток, определяется параметром реестра BackgroundInterval. По умолчанию значение равно 30 секундам. На самом деле этот параметр управляет интервалами между обработками для множества фоновых задач, включая поток очистки памяти, логирование запросов и отложенная обработка. Если Вы хотите установить интервал для потока очистки памяти отдельно от этих фоновых задач, то добавьте ключ реестра CleanerInterval и установите значение только для потока очистки памяти. Когда количество памяти, используемое Analysis Services, превышает значение Memory conservation threshold, Analysis Services повышает приоритет потока очистки памяти до нормального, чтобы быстро уменьшить объем выделенной памяти до Minimum allocated memory. Если общий объем памяти, выделенный всем задачам Analysis Services, превышает порог выделения памяти более чем на 6,25 процента, то Analysis Services сразу начинает удалять из кэша записи целых кубов для быстрого уменьшения используемого Analysis Services объема памяти. В этом случае, из-за того, что Analysis Services очищает память очень быстро, общий объем выделенной памяти может опуститься ниже значения, указанного в параметре Minimum allocated memory. Если Вы установите значение Minimum allocated memory слишком низким, то поток очистки памяти будет удалять слишком много записей из кэша результатов запросов. Это увеличит время отклика запросов и потребует дополнительных ресурсов для повторного заполнения кэша результатов запросов. Допустим, что у вашего компьютера 2 гигабайта физической памяти и Вы устанавливаете параметр Memory conservation threshold равным 1.4GB и параметр Minimum allocated memory равным 100 мегабайт. Если использование памяти значительно превышает 1.4 гигабайта, то поток очистки памяти принудительно будет удалять записи из кэша результатов запроса до объема в 100 мегабайт или даже меньше. После этого Analysis Services должен снова добавлять записи в кэш результатов запросов при выполнении новых запросов. Более подходящее значение параметра Minimum allocated memory для этой системы - 1 гигабайт, что дает потоку очистки памяти возможность выполнять свою работу без ненужных удалений записей кэша, когда объем выделенной памяти превышает значение, заданное в параметре Memory conservation threshold. Как Вы можете видеть, установка для параметра Memory conservation threshold слишком низкого значения также уменьшает общую производительность и может вызвать ошибку нехватки памяти. Никогда не устанавливайте параметр Memory conservation threshold больше объема физической памяти компьютера (иначе это приведет к интенсивному использованию файлов подкачки). Если Вы установите флажок /3 GB, то не следует устанавливать параметр Memory conservation threshold больше 2.7 гигабайт. Установка этого значения немного ниже 3-гигабайтной границы гарантирует, что поток очистки памяти имеет достаточно времени для реагирования на недостаточность памяти и для уменьшения выделенной памяти до того, как Analysis Services использует все 3 гигабайта адресного пространства. Порог выделения памяти не ограничивает количество памяти, используемое Analysis Services, напрямую. Это означает, что у Analysis Services может произойти нехватка адресного пространства в пространстве главного процесса или использовать больше памяти, чем физически есть в компьютере. Совет: Если Вы добавляете память или устанавливаете флажок /3 GB в файле boot.ini, то Вам следует увеличить значения параметров Memory conservation threshold и Minimum allocated memory в Analysis Manager. Замечание: Если у Вас не установлен Analysis Services Service Pack 3, то Вам нужно изменить значение HighMemoryLimit напрямую в реестре, чтобы позволить Analysis Services использовать более 2 гигабайт памяти, вместо установки значения параметра Memory conservation threshold в Analysis Manager. Установка SP3 изменяет Analysis Manager, что позволяет администратору вводить значение, превышающее 2 гигабайта (до 3 гигабайт). В SP2 и более ранних версиях Analysis Manager позволял ввести только значения от 1 до 2047 мегабайт. Для дополнительной информации зайдите на сайт Microsoft Knowledge Base (support.microsoft.com) и посмотрите статью "INF: How to Enable Analysis Server To Use 3 GB of RAM". ПРОДОЛЖЕНИЕ СЛЕДУЕТ Статьи на русском языке
Существует ли инструмент для облегчения процесса настройки монитора
производительности на станциях Windows?
SQL Server 2005 - SQL Server Integration Services - Part 2 Самые популярные темы недели
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
share registration information. Не совсем работает |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться
Вспомнить пароль |
В избранное | ||