Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Поясните про память в диспетчере задач  [new]
сникерс
Member [заблокирован]

Откуда:
Сообщений: 386
Добрый день.


В диспетчере задач есть несколько вкладок про память, в том числе:


доступно.
свободно.



Подскажите в чем разница между ними?


доступно показывает 1.5 Гб, а свободно 12 Мб. Кому верить?
30 май 17, 12:28    [20522855]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
человек_ниоткуда
Guest
сникерс, читай https://support.microsoft.com/en-us/help/2160852/ram,-virtual-memory,-pagefile,-and-memory-management-in-windows
30 май 17, 12:42    [20522950]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
сникерс
Member [заблокирован]

Откуда:
Сообщений: 386
Memory, Available MBytes: This counter measures how much RAM is available to satisfy demands for virtual memory (either new allocations, or for restoring a page from the pagefile).

When RAM is in short supply (for example, Committed Bytes is greater than installed RAM), the operating system will try to keep a certain fraction of installed RAM available for immediate use by copying virtual memory pages that are not in active use to the pagefile. Therefore, this counter will not reach zero and is not necessarily a good indication of whether your system is short of RAM.




А свободно тогда это что? о_О
30 май 17, 16:14    [20524231]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
сникерс
Подскажите в чем разница между ними?
Available = Standby + Free
Free - вообще пустая, можно немедленно использовать
Standby - занято под неизменённые данные, и давно не использовалось, кандидат на использование.
30 май 17, 17:47    [20524704]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
человек_ниоткуда
Guest
Memory, Available MBytes: это сколько памяти на железе доступно.

А дальше они говорят, что когда памяти на железе немножечно, то винда неиспользуемую чать памяти копирует на диск в pagefile.sys (свопник) и помечает её как свободную НА ЖЕЛЕЗЕ. Т.е. свободно памяти на железе становится больше, и если каму ещё памяти нужно - то она на железе ему выделяется.

Но все процессы думают что у них памяти воз и маленькая тележка - хотя на самом деле у них воз в pagefile.sys и маленькая тележка на железке.

PS: Вроде правильно всё расписал. Если накосячил, поправьте.
30 май 17, 17:56    [20524721]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
сникерс
Member [заблокирован]

Откуда:
Сообщений: 386
человек_ниоткуда
Memory, Available MBytes: это сколько памяти на железе доступно.

А дальше они говорят, что когда памяти на железе немножечно, то винда неиспользуемую чать памяти копирует на диск в pagefile.sys (свопник) и помечает её как свободную НА ЖЕЛЕЗЕ. Т.е. свободно памяти на железе становится больше, и если каму ещё памяти нужно - то она на железе ему выделяется.

Но все процессы думают что у них памяти воз и маленькая тележка - хотя на самом деле у них воз в pagefile.sys и маленькая тележка на железке.

PS: Вроде правильно всё расписал. Если накосячил, поправьте.



супер!

Теперь все понятно!!!!

Т.е. у меня показывает 1.5 Гб доступно, из них 1.488 Гб - это файл подкачки, а реально свободно только 12Мб !
30 май 17, 18:58    [20524997]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
сникерс
человек_ниоткуда
Memory, Available MBytes: это сколько памяти на железе доступно.

А дальше они говорят, что когда памяти на железе немножечно, то винда неиспользуемую чать памяти копирует на диск в pagefile.sys (свопник) и помечает её как свободную НА ЖЕЛЕЗЕ. Т.е. свободно памяти на железе становится больше, и если каму ещё памяти нужно - то она на железе ему выделяется.

Но все процессы думают что у них памяти воз и маленькая тележка - хотя на самом деле у них воз в pagefile.sys и маленькая тележка на железке.

PS: Вроде правильно всё расписал. Если накосячил, поправьте.

супер!

Теперь все понятно!!!!

Т.е. у меня показывает 1.5 Гб доступно, из них 1.488 Гб - это файл подкачки, а реально свободно только 12Мб !
Нет, в файл подкачки не сбрасывается неиспользуемая память.
Туда сбрасывают только изменённую память, которую невозможно держать в ОЗУ.

Системы виртуальной памяти всё таки не настолько тупые, так даже 40 лет назад не делалось.

Например, много памяти занимает код приложений, включая тыщи dll. Сектора диска проецируются на страницы ОЗУ, это запоминается в декрипторах страниц (ставится прямое соответствие страница-сектор). Естественно, если ОС желает освободить память, зачем её эти DLL копировать в файл подкачки? Она просто освобождает память, и всё. А когда нужно, опять подгружает эти сектора с диска.

То же самое - кэш файлов. Если файлы не изменились, и нужно освободить память, зачем этот кэш сбрасывать на диск в файл подкачки? Просто удаляем.

человек_ниоткуда правильно всё описал, но это верно только для изменяемой памяти приложений. В обычной системе это совсем немного.
30 май 17, 20:35    [20525265]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
сникерс
Member [заблокирован]

Откуда:
Сообщений: 386
alexeyvg
сникерс
пропущено...

супер!

Теперь все понятно!!!!

Т.е. у меня показывает 1.5 Гб доступно, из них 1.488 Гб - это файл подкачки, а реально свободно только 12Мб !
Нет, в файл подкачки не сбрасывается неиспользуемая память.
Туда сбрасывают только изменённую память, которую невозможно держать в ОЗУ.

Системы виртуальной памяти всё таки не настолько тупые, так даже 40 лет назад не делалось.

Например, много памяти занимает код приложений, включая тыщи dll. Сектора диска проецируются на страницы ОЗУ, это запоминается в декрипторах страниц (ставится прямое соответствие страница-сектор). Естественно, если ОС желает освободить память, зачем её эти DLL копировать в файл подкачки? Она просто освобождает память, и всё. А когда нужно, опять подгружает эти сектора с диска.

То же самое - кэш файлов. Если файлы не изменились, и нужно освободить память, зачем этот кэш сбрасывать на диск в файл подкачки? Просто удаляем.

человек_ниоткуда правильно всё описал, но это верно только для изменяемой памяти приложений. В обычной системе это совсем немного.



Совсем запутался


Вот некоторые счетчики permon:
+

Процент использования выделенной памяти - это процентное отношение объема выделенной памяти (Committed Bytes) к пределу выделенной памяти (Commit Limit). Эта величина отражает реально используемый объем доступной виртуальной памяти. Учтите, что предел выделенной памяти может быть изменен, если файл подкачки (страничный файл) будет увеличен. Эта величина представляет собой конкретное текущее значение, и не является средним значением по некоторому интервалу времени.




Байт в выгружаемом пуле — это размер (в байтах) выгружаемого пула. Выгружаемый пул представляет собой область виртуальной памяти системы, применяемую для объектов, которые могут быть записаны на диск, когда не используются. Счетчик "Память\\Байт в выгружаемом пуле" вычисляется не так, как "Процесс\\Байт в выгружаемом пуле", поэтому он может быть не равен значению "Процесс(_Total)\\Байт в выгружаемом пуле\\". Этот счетчик отражает только текущее, а не среднее значение.



Байт в невыгружаемом пуле — это размер (в байтах) невыгружаемого пула. Невыгружаемый пул представляет собой область виртуальной памяти системы, применяемую для объектов, которые не могут быть записаны на диск и должны оставаться в физической памяти на все время своего существования. Счетчик "Память\\Байт в невыгружаемом пуле" вычисляется не так, как "Процесс\\Байт в невыгружаемом пуле", поэтому он может быть не равен значению "Процесс(_Total)\\Байт в невыгружаемом пуле\\". Этот счетчик отражает только текущее, а не среднее значение.



Резидентных байт в выгружаемом пуле — это размер (в байтах) части выгружаемого пула, которая в настоящий момент находится в физической памяти и активна. Выгружаемый пул представляет собой область виртуальной памяти системы, применяемую для объектов, которые могут быть записаны на диск, когда не используются. Этот счетчик отражает только текущее, а не среднее значение.




Байт выделенной виртуальной памяти - это объем виртуальной памяти, которая была выделена (Committed) - в отличие от просто зарезервированной памяти. Выделенная память должна получить место на запоминающем устройстве (т.е. на диске), либо должна не нуждаться в дисковой памяти, поскольку оперативная память достаточно велика для того, чтобы разместить в ней выделенную память. Этот счетчик отражает текущее значение, и не является средним значением по некоторому интервалу времени.


Байты измененных страниц — это объем физической памяти в байтах, назначенной измененным страницам. Эта память содержит кэшированные данные и код, не используемый активно процессами, системой и системным кэшем. Память нуждается в записи перед выделением для процесса или использования системой.


Байт кэш-памяти — это размер (в байтах) части кэша системных файлов, которая в настоящий момент находится в физической памяти и активна. Счетчики "Байт кэш-памяти" и "Память\\Резидентных байт системного кэша" эквивалентны. Этот счетчик отражает только текущее, а не среднее значение.


Байт кэш-памяти (пик) — это максимальное количество байтов, использованное кэшем системных файлов с момента последнего перезапуска системы. Оно может быть больше текущего размера кэша. Этот счетчик отражает только текущее, а не среднее значение.


--
Байт свободной памяти и обнуленных страниц памяти — это объем физической памяти в байтах, назначенной свободной памяти и обнуленным страницам памяти. Эта память не содержит кэшированные данные. Она может немедленно выделяться для процесса или использования системой.

--
Байты основного резервного кэша — это объем физической памяти в байтах, назначенной для страниц памяти основного резервного кэша. Эта память содержит кэшированные данные и код, не используемый активно процессами, системой и системным кэшем. Она может немедленно выделяться для процесса или использования системой. Если системе не хватает свободной и обнуленной памяти, то страницы памяти резервного кэша с более низким приоритетом будут использоваться раньше, чем страницы памяти резервного кэша с более высоким приоритетом.


Байты резерва резервного кэша — это объем физической памяти в байтах, назначенной для страниц памяти резервного кэша. Эта память содержит кэшированные данные и код, не используемый активно процессами, системой и системным кэшем. Она может немедленно выделяться для процесса или использования системой. Если системе не хватает свободной и обнуленной памяти, то страницы памяти резервного кэша с более низким приоритетом будут использоваться раньше, чем страницы памяти резервного кэша с более высоким приоритетом.


Байты резервного кэша обычного приоритета — это объем физической памяти в байтах, назначенной для страниц памяти резервного кэша обычного приоритета. Эта память содержит кэшированные данные и код, не используемый активно процессами, системой и системным кэшем. Она может немедленно выделяться для процесса или использования системой. Если системе не хватает свободной и обнуленной памяти, то страницы памяти резервного кэша с более низким приоритетом будут использоваться раньше, чем страницы памяти резервного кэша с более высоким приоритетом.


Всего байт системного кода — это размер (в байтах) выгружаемого кода операционной системы, сейчас сопоставленного с виртуальным адресным пространством системы. Эта величина рассчитывается путем суммирования байтов в файлах Ntoskrnl.exe, Hal.dll, драйверах загрузки и файловых системах, загруженных Ntldr/osloader. Этот счетчик не включает код, который должен оставаться в физической памяти и не может быть записан на диск. Счетчик отражает только текущее, а не среднее значение.


Всего байт системных драйверов — это размер (в байтах) выгружаемой виртуальной памяти, которая сейчас используется драйверами устройств. Выгружаемая память может быть записана на диск, когда не используется. Она включает физическую память (Память\\Резидентных байт системных драйверов), а также код и данные, выгруженные на диск. Эта величина входит в состав счетчика "Память\\Всего байт системного кода". Этот счетчик отражает только текущее, а не среднее значение.


Вывод страниц/сек - это счетчик записи страниц на диск, выполняемой для освобождения места в оперативной памяти. Страницы записываются на диск только в том случае, если они были изменены в оперативной памяти, поэтому они вероятнее всего содержат данные, а не программный код. Высокая доля вывода страниц может свидетельствовать о нехватке оперативной памяти. Windows записывает большее число страниц на диск для освобождения памяти, если на компьютере возникает нехватка оперативной памяти. Этот счетчик отображает число страниц, и удобен для сравнения с другими счетчиками страниц без дополнительных преобразований.


Доступно байт — это объем физической памяти в байтах, немедленно доступной для выделения процессу или для использования системой. Эта величина равна сумме памяти, выделенной для кэша, свободной памяти и обнуленных страниц памяти.


Обмен страниц/сек - это число страниц, прочитанных с диска или записанных на диск. Эта величина является суммой величин Ввод страниц/сек и Вывод страниц/сек, и включает страничный обмен (подкачку) системной кэш-памяти для доступа к файлам данных для приложений. Кроме того, сюда включается страничный обмен (подкачка) для не кэшированных файлов, непосредственно отображаемых в память.



Резидентных байт системного кода — это размер (в байтах) выгружаемого кода операционной системы, который в настоящий момент находится в физической памяти и активен. Это значение входит в счетчик "Память\\Всего байт системного кода". Счетчик "Память\\Резидентных байт системного кода" (и "Память\\Всего байт системного кода") не включают код, который должен оставаться в физической памяти и не может быть записан на диск. Этот счетчик отражает только текущее, а не среднее значение.






В каком из них посмотреть сколько доступно оперативной памяти на физической памяти а не в файле подкачки?
1 июн 17, 18:29    [20532663]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
сникерс
Member [заблокирован]

Откуда:
Сообщений: 386
Вот тут нашел:
https://support.microsoft.com/ru-ru/help/978610/the-usable-memory-may-be-less-than-the-installed-memory-on-windows-7-based-computers

Свободно Память, не содержащая никаких важных данных. Именно она будет использоваться в первую очередь, если процессам, драйверам или операционной системе потребуется больший объем памяти.



Т.е. доступно - это с учетом файла подкачки, а свободно без учета?

К сообщению приложен файл. Размер - 38Kb
1 июн 17, 18:49    [20532715]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
сникерс
Т.е. доступно - это с учетом файла подкачки, а свободно без учета?

Как то непонятно вы используете понятие файл подкачки :-)
Он тут прямо ни с чем не связан.

Вы процитировали документацию:
сникерс
Свободно Память, не содержащая никаких важных данных. Именно она будет использоваться в первую очередь, если процессам, драйверам или операционной системе потребуется больший объем памяти.

Вот есть память, в ней ничего нет, она называется Свободная, и она может немедленно, без выполнения каких либо действий, и без ущерба для каких то программ, отдана операционной системой какому либо приложению.

А есть память доступная.
Она выделена другим приложениям, но к ней давно не было обращений, в ней нет данных, которые были изменены, её не надо куда то сохранять, и она может немедленно отдана операционной системой какому либо приложению, нужно только изменить её описатели.
Но тут может быть ущерб для других приложений - это же их память, а вдруг они прямо сейчас захотят к ней обратиться?

А файл подкачки тут, как видите, не упоминается - он к этим терминам, о которых был вопрос стартового топика, не имеет отношения.
1 июн 17, 20:24    [20532939]     Ответить | Цитировать Сообщить модератору
 Re: Поясните про память в диспетчере задач  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
alexeyvg
сникерс
Т.е. доступно - это с учетом файла подкачки, а свободно без учета?

Как то непонятно вы используете понятие файл подкачки :-)
Он тут прямо ни с чем не связан.

Вы процитировали документацию:
сникерс
Свободно Память, не содержащая никаких важных данных. Именно она будет использоваться в первую очередь, если процессам, драйверам или операционной системе потребуется больший объем памяти.

Вот есть память, в ней ничего нет, она называется Свободная, и она может немедленно, без выполнения каких либо действий, и без ущерба для каких то программ, отдана операционной системой какому либо приложению.

А есть память доступная.
Она выделена другим приложениям, но к ней давно не было обращений, в ней нет данных, которые были изменены, её не надо куда то сохранять, и она может немедленно отдана операционной системой какому либо приложению, нужно только изменить её описатели.
Но тут может быть ущерб для других приложений - это же их память, а вдруг они прямо сейчас захотят к ней обратиться?

А файл подкачки тут, как видите, не упоминается - он к этим терминам, о которых был вопрос стартового топика, не имеет отношения.
Ой, я тут сам запутался :-)
Вместо доступная нужно было написать Standby

А доступная - это Standby + Свободная
Доступную память можно всю отдать приложению, которому нужна память, но Свободную можно отдать немедленно, не нанося ущерб другим приложениям, а Standby может понадобиться другим приложениям, которые её использовали.
1 июн 17, 20:51    [20532988]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить