Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Разное - Кэшируется вся память. Так ли это плохо?

Ответить
Настройки темы
Разное - Кэшируется вся память. Так ли это плохо?

Новый участник


Сообщения: 35
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Mixxx
Дата: 11-09-2009
Службу SuperFetch отключил!
Сборка Windows x64 7600
Меня интересует на что тратится моя оперативка?
Я посчитал (в момент когда почти ничего не запущено) суммарную загрузку оперативки путем суммирования памяти под процесы (tasklist.exe>tasks.txt) и получилось 393 Мб
Но Диспетчер задач показывает что занято физической памяти 900 Мб
Так вот чем заняты 507мб? Как узнать? Возможно ли освободить?
В Win XP x64 такой аномалии не наблюдалось.

PS Всего ОЗУ 8Гб и реплики типа: "тебе жалко что ли" прошу оставить при себе.


Краткое объяснение

Диспетчер памяти в Vista/7 работает иначе, чем в XP. В новых система Microsoft свободная память кэшируется, чтобы оптимизировать ее выдачу программам и процессам в нужный момент.



В отсутствии свободной (Free) памяти нет никакой проблемы это нормально. Главное, что есть доступная память (Available), которая складывается из кэшированной и свободной. Другими словами, Available = Cached + Free.

Дополнительная техническая информация по теме
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:22, 11-09-2009

 

Аватара для Vancouver

Ветеран


Сообщения: 8502
Благодарности: 1586

Профиль | Отправить PM | Цитировать


Новая утилита RAMMap от Mark Russinovich and Bryce Cogswell. Показывает подробную карту использования оперативной памяти и даже можно просмотреть список файлов, находящихся в файловом кэше в данный момент.

-------
Нефиг ставить то, к чему второй сервис-пак не вышел.
"Есть старое правило - чтобы не было геморроя, руки должны быть прямыми, а извилины - кривыми, но не наоборот." © Korzh

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:43, 21-05-2010 | #81



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для zet17

Ветеран


Сообщения: 537
Благодарности: 4

Профиль | Отправить PM | Цитировать


Допустим, вы приобрели компьютер с 8 гигабайтами памяти. Но неужели то, что используется от силы 1 гигабайт, а вся остальная память простаивает — так уж хорошо? С выходом Windows Vista и Windows 7 подход к использованию оперативной памяти кардинально поменялся: теперь ОС пытается использовать всю имеющуюся память максимально эффективно. В частности, в Windows Vista и Windows 7 появилась фича с названием SuperFetch.
Что же такое SuperFetch?
SuperFetch — это системный сервис, запускающийся внутри системного процесса svchost. Код его находится внутри DLL-ки %SystemRoot%\System32\Sysmain.dll. Этот сервис постоянно следит за тем, какие приложения запускает пользователь, и к каким исполняемым файлам и файлам данных они обращаются. Вся эта информация сохраняется в файлах с расширением *.db в каталоге %SystemRoot%\Prefetch. Для чего это все делается? А вот для чего: сервис SuperFetch, имея информацию о том, с какими приложениями пользователь работает наиболее часто — заранее подгружает в память соответствующий код и данные, и, когда пользователь запускает свое приложение — вся необходимая информация уже имеется в памяти, и запуск происходит намного быстрее — потому как нет необходимости считывать информацию с жесткого диска. Особенно это заметно на таких «тяжелых» приложениях, как семейство MS Office, функционал которых может быть «размазан» по десяткам и сотням exe-шников и dll-ок. SuperFetch настолько «умна», что может даже определять предпочтения пользователя в разные дни и время суток — например, то, что в рабочие дни он работает с Word и Excel, а по выходным — играется в Call of Duty, и, соответственно — подгружает в память нужные данные. Соответственно, эта область памяти помечается как «занятая», что и отображается в Task Manager`e, создавая впечатление «утечек памяти». Тем не менее, если вдруг запускается какое-то приложение, требующее выделения памяти — memory manager спокойно освобождает нужное пространство, а по завершении работы приложения память освобождается и данные подгружаются снова.
Если же какое-нибудь приложение, к примеру, завершает свою работу и освобождает память — то SuperFetch обращается к менеджеру памяти с просьбой подгрузить только что выгруженный код и даннные. Процесс этот происходит с маленькой скоростью и с низшим (Very Low) приоритетом, поэтому работа SuperFetch не приводит к падению производительности. Если вы, к примеру, отойдете покурить, а в это время запустится фоновый процесс, которому необходима память (например — антивирусная проверка), то код и данные приложения, с которым вы работали — возможно будут выгружены из памяти. Благодаря же SuperFetch — к тому моменту, когда вы вернетесь с перекура — данные вашего активного приложения будут полностью или частично подгружены обратно в память.
Более того, SuperFetch может обрабатывать режимы гибернации, «спящий режим» и смены пользователя (fast user switching). К примеру, если система уходит в гибернацию — то SuperFetch сохраняет в файл hiberfil.sys код и данные тех приложений, которые, по его мнению, скорее всего будут использоваться после выхода из гибернации. Как это «мнение» формируется? Очень просто — Большой БратSuperFetch смотрит за тобой, и за тем, что ты запускал после выхода из предыдущих гибернаций, и основываясь на этом — может предположить, что в следующий раз при выходе из гибернации ты наверняка запустишь «аську» и откроешь свой любимый браузер, чтобы почитать «хабрахабр». Ну а через часок-другой — откроешь Visual Studio, потому что проект горит, а сроки сдачи — «вчера».

Можно понаблюдать за работой SuperFetch с помощью того же Task Manager`a:
Если какое-то время поюзать Windows Vista/7, то можно заметить, что объем свободной памяти уменьшается. Это происходит из-за того, что SuperFetch стандартный систмный кэш Windows пытаются утилизировать доступную память для кэширования данных с диска. К примеру, если сразу после загрузки Windows запустить Task Manager — видно, что Free Memory — уменьшается, а Cached Memory — наоборот увеличивается. Если же запустить какую-нибудь «жадную до памяти» программу, или же просто запустить копирование большого файла — Free Memory увеличится и график «Physical Memory Usage» резко упадет, потому что система будет освобождать память для запущенного приложения, но потом начнет потихоньку расти — потому что собственно приложение начнет эту память забирать. Однако, со временем SuperFetch будет подгружать в память недавно выгруженные данные, поэтому значение Cached Memory будет расти, а Free Memory — уменьшаться.

Надеюсь, было интересно. Спасибо за внимание.

System32 По материалам статьи Марка Руссиновича «Inside the Windows Vista Kernel»
http://habrahabr.ru/blogs/windows7/92165/

Последний раз редактировалось Vancouver, 31-05-2010 в 20:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:22, 31-05-2010 | #82


Пользователь


Сообщения: 66
Благодарности: 1

Профиль | Отправить PM | Цитировать


В мониторе ресурсов память окрашенная в синий цвет с пометкой "ожидание" - это и есть SuperFetch? Если да, то как этот SuperFetch выключить?

Отправлено: 15:07, 21-06-2010 | #83


Пользователь


Сообщения: 76
Благодарности: 16

Профиль | Отправить PM | Цитировать


Burgunsky, выключить так
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
"EnablePrefetcher"=dword:00000000
"EnableSuperfetch"=dword:00000000

Отправлено: 14:08, 22-06-2010 | #84


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос простой.

Как полностью отключить кеширование ? Так, чтобы в диспетчере стояло заветное: кеширование-0 Мб !

В службах Superfecth-отключен.
Сам параметр EnableSuperfetch в реестре встречается в трех разных ветках-все на нуль "EnableSuperfetch"=dword:00000000,"EnablePrefetcher"=dword:00000000
Из командной строки также отключено.


Но все равно кеширует. Мне нужно полностью отключить это долбаное кеширование. (Потому что так.)
Мож какие dll поудалять?

Большое спасибо за ответ.

Отправлено: 15:44, 10-09-2010 | #85


Ветеран


Сообщения: 1958
Благодарности: 306

Профиль | Отправить PM | Цитировать


explorer isnt working,
Я конечно понимаю настойчивость, но вот вопрос а зачем, ну увидите вы что у вас из 8Gb, кеш - 0, занято 500MB, свободно 7,5GB а дальше, что?

Или вам жалко "шуршание" винта которое, данный процесс происходит с "низким" приоритетом и в свободное от работы время (естественно системы).

Отправлено: 15:59, 10-09-2010 | #86


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


to Valeant

Зачем нужно отключать кеширование :

! 1 По "религиозным" соображениям.

! 2 Мне действительно жалко винт, и также жалко гонять оперативу на не новом компе (физическое старение элементной базы и т.п., особенно от дешёвых производителей оборудования, но это так, для аргументации )

! 3 На 1 компе 4Gb оперативы.Во время игр появляется сообщение от нехватке памяти, хотя её более чем достаточно и файл подкачки есть. Эта проблема из-за этого грёбанного кеширования ( достаточно погуглить), и это не зависит от того , лицензия Win-ды или нет( за исключением кривой версии).Таже байда была у меня и на висте (которая вдруг крутанулась, плюнула через плечо и стала Win7).

! 4 На другом компе 1Gb оперативы.Сама Win7 сжирает 250Мб оперaтивы. Кеширует- 180-200 или чуть более того.При запуске на такой системе требовательных к памяти игр(здесь случай, когда другого варианта нет), все равно отбирает память, мегабайт 200, для кеширования.Для такого малого кол-ва оперативы это критично.


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

Valeant, вы знаете как отключить кеширование полностью, или нет ?

Спасибо за ответ.

Отправлено: 12:41, 12-09-2010 | #87


Забанен


Сообщения: 1368
Благодарности: 163

Профиль | Цитировать


Цитата explorer isnt working:
Мне действительно жалко винт, »
Нелогично. Если Вам его жалко, так надо уменьшать число обращений к нему, а не увеличивать.

Цитата explorer isnt working:
Эта проблема из-за этого грёбанного кеширования »
Делать выводы, исходя из ложных предпосылок, неразумно.

Последний раз редактировалось Игорь Лейко, 13-09-2010 в 18:18.


Отправлено: 18:08, 13-09-2010 | #88


Новый участник


Сообщения: 36
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата zet17:
...или же просто запустить копирование большого файла...»
Прочитал всю тему, но эти строки побудили спросить кое о чем.
У меня, при копировании больших файлов или большого количества файлов, система начинает ощутимо тормозить. В частности, курсор мыши начинает двигаться очень заметными рывками; ни одно приложение, в том числе и проводник, будет невозможно запустить, пока не завершится копирование.
При этом в Диспетчере задач картина не меняется ни ДО, ни ПОСЛЕ. С чистой установкой ОС такой проблемы не наблюдается, но через некоторое время она проявляется.
Windows 7 x86 Ultimate RU, 1Gb RAM, Celeron 2.4Ghz.

Отправлено: 18:30, 13-09-2010 | #89


Ветеран


Сообщения: 1958
Благодарности: 306

Профиль | Отправить PM | Цитировать


Цитата:
explorer isnt working,
и также жалко гонять оперативу на не новом компе (физическое старение элементной базы и т.п., особенно от дешёвых производителей оборудования, но это так, для аргументации)
не аргумент, почему же вам процессор тогда не жалко в нем есть транзисторы которые тоже переключаются?

Цитата:
explorer isnt working,
На 1 компе 4Gb оперативы.Во время игр появляется сообщение от нехватке памяти, хотя её более чем достаточно и файл подкачки есть.
А как вы определили что ее более чем достаточно?

Отключайте данную службу в сервисах - SysMain - Superfetch - windows\system32\sysmain.dll

Но прежде чем отключать если можно покажите ваш расклад по распределению памяти хотя бы одной игрой, в программе VmMap интересно посмотреть.

VeRtex-2010,
Посмотрите в мониторе ресурсов закладки диск и ЦПУ что на сколько загружено, а в ProccssExplorer - DPS и прерывание.
А потом откуда и куда переписываете файлы и какие не архивы случаем?

Отправлено: 18:39, 13-09-2010 | #90



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Разное - Кэшируется вся память. Так ли это плохо?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Я так понял это проблема с видеокартой ECTb 3DECb KTO Видеокарты 8 07-11-2009 16:24
[решено] Почему видна не вся память? silalex Материнские платы и память 2 26-04-2009 20:44
Интернет - Скажите, так ли это??? aval12 Microsoft Windows Vista 2 12-03-2009 14:46
Кэщируется вся память ___Андрей Материнские платы и память 5 23-11-2008 23:29
много окон это плохо :) oIo_DeN_oIo Microsoft Windows 2000/XP 4 14-10-2005 21:34




 
Переход