Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Directly addressable physical memory  [new]
hey
Guest
When discussing memory pressure, we refer to the term "visible" memory. Visible memory is the directly addressable physical memory available to SQL Server buffer pool. On a 32-bit SQL Server instance, the maximum value for the visible memory is either 2 GB or 3 GB, depending on whether you have the /3 GB flag set in your boot.ini file. Memory with addresses greater than 2 GB or 3 GB is only available indirectly, through AWE-mapped-memory. On a 64-bit SQL Server instance, visible memory has no special meaning, as all the memory is directly addressable. In any of the discussion below, if we refer to visible target memory greater than 3 GB, keep in mind that is only possible on a 64-bit SQL Server. The term "target" memory refers to the maximum amount of memory that can be committed to the SQL Server process. Target memory refers to the physical memory committed to the buffer pool and is the lesser of the value you have configured for "max server memory" and the total amount of physical memory available to the operating system. So "visible target memory" is the visible portion of the target memory. Query plans can only be stored in the non-AWE-mapped memory, which is why the concept of visible memory is important. You can see a value for visible memory, specified as the number of 8-KB buffers, when you run the DBCC MEMORYSTATUS command. The section called Buffer Counts displays values for Visible memory as well as Target memory.

Inside Microsoft® SQL Server™ 2005: Query Tuning and Optimization
by Kalen Delaney

Насколько знаю, любой процесс в операционной системе получает 2 Гб виртуальной памяти, и так сказать, живет в ней. Далее сама операционная система определяет как распределять имеющуюся физическую память и отправляет в своп некоторые процессы.
Если в приведенний цитате под directly addressable physical memory подразумевается именно виртуальная память, то почему она вдруг начинает зависеть от количества реальной памяти (в цитате выделено жирным), сервер ведь вообще не должен знать таких вещей ?
27 авг 09, 04:47    [7584540]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Речь идет о физической, а не виртуальной памяти. И выделенная Вами цитата говорит лишь о том, что максимальный размер памяти, который может использовать SQL Server (target" memory) - это именно физическая память и она является меньшем из двух (max server memory, доступная физическая память).
27 авг 09, 08:30    [7584719]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
hey
Guest
тогда еще менее понятно, каким образом процесс вдруг получил возможность напрямую идти в память в обход операционной системы ?
Это-же по определению невозможно ?
27 авг 09, 08:54    [7584781]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
hey
тогда еще менее понятно, каким образом процесс вдруг получил возможность напрямую идти в память в обход операционной системы ?
Это-же по определению невозможно ?


Он не идет в обход операционной системы, но использовать для бeферного пула может только физическую память, из виртуального адресного пространства ОС.
27 авг 09, 09:00    [7584799]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
hey
Guest
что такое "физическая память из виртуального адресного пространства ОС" ?
27 авг 09, 09:22    [7584858]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
hey
что такое "физическая память из виртуального адресного пространства ОС" ?


У Вас машина с 1 гигом Физ. памяти. Для 32 разрядных систем вирт. вдресное пространство - 4 гига. Но мапиться на физ. память может не больше 1 гига. Остальное в своп. Так вот для буферного пула м.б. использован тока часть, которая мапиться на физическую память.
27 авг 09, 09:35    [7584918]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
hey
Guest
так ведь процесс не в состоянии контролировать, какая его часть в "настоящей" памяти, а какая в свопе, это иепархия ОС, с точки зрения процесса он целиком находится в памяти и ни о каких своп-файлах даже не подозревает ?
27 авг 09, 09:43    [7584947]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
hey
так ведь процесс не в состоянии контролировать, какая его часть в "настоящей" памяти, а какая в свопе, это иепархия ОС, с точки зрения процесса он целиком находится в памяти и ни о каких своп-файлах даже не подозревает ?


В состоянии. Процесс может указывать менеджеру виртуальной памяти ОС какая память ему нужна - только физическая или виртуальная. Более того, процесс может контроллировать сколько свободной физической памяти имеется. На этом, собственно и построен механизм динамического использования памяти, когда процесс SQL Server периодически контроллирует остаток свободной физической памяти и оставляет "немного" или отдает другим приложениям и ОС, дабы избежать пейджинга.
27 авг 09, 09:55    [7584996]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
hey
Guest
т.е. можно запретить своп для определенной части данных своего приложения ?

хм, и что интересно произойдет, если 100 разных процессов (не сиквел сервер) захотят то гигобайту физической памяти ?
27 авг 09, 10:01    [7585016]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
проходящий.
Guest
hey
т.е. можно запретить своп для определенной части данных своего приложения ?

хм, и что интересно произойдет, если 100 разных процессов (не сиквел сервер) захотят то гигобайту физической памяти ?
Админ такого сервера получит по ушам за разведение бессмысленного зоопарка.
27 авг 09, 10:06    [7585043]     Ответить | Цитировать Сообщить модератору
 Re: Directly addressable physical memory  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
hey
т.е. можно запретить своп для определенной части данных своего приложения ?

хм, и что интересно произойдет, если 100 разных процессов (не сиквел сервер) захотят то гигобайту физической памяти ?


По-моему, мы уходим в глубокий оффтоп. Захотеть то они захотят, но кто же им даст?! Никогда не нарывались в логе винды на сообщение:

Could not set working set size to ... KB

когда какой-нибудь процесс пытается зарезервировать больше физ. памяти, чем имеется в наличии.
27 авг 09, 10:08    [7585050]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить