PDA

Показать полную графическую версию : Кэшируется вся память. Так ли это плохо?


Страниц : 1 2 3 4 [5] 6 7 8 9 10

Vancouver
21-05-2010, 03:43
Новая утилита RAMMap (http://technet.microsoft.com/en-us/sysinternals/ff700229.aspx) от Mark Russinovich and Bryce Cogswell. Показывает подробную карту использования оперативной памяти и даже можно просмотреть список файлов, находящихся в файловом кэше в данный момент.

http://i4.fastpic.ru/thumb/2010/0521/68/db409fff0a2367889d43ea0b6329e568.jpeg (http://fastpic.ru/view/4/2010/0521/db409fff0a2367889d43ea0b6329e568.png.html)

zet17
31-05-2010, 20:22
Допустим, вы приобрели компьютер с 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 (http://system32.habrahabr.ru/) По материалам статьи Марка Руссиновича «Inside the Windows Vista Kernel»
http://habrahabr.ru/blogs/windows7/92165/

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

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

explorer isnt working
10-09-2010, 15:44
Вопрос простой.

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

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


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

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

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

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

explorer isnt working
12-09-2010, 12:41
to Valeant

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

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

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

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

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


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

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

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

Игорь Лейко
13-09-2010, 18:08
Мне действительно жалко винт, »
Нелогично. Если Вам его жалко, так надо уменьшать число обращений к нему, а не увеличивать.

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

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

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

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

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

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

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

Wadikkk
15-10-2010, 21:01
Добрый вечер!Тему мою "Освобождение памяти" закрыли.(Почему?По теме - утечка по загрузке через инет.),
Напишу здесь:

Стоит только что нибудь качать с инета,как память начинает расти.Будь то разные программы и разные версии.
Сами программы оперативки потребляют немного.Без закачки на неперезагружаемой системе компьютер работает неделю и больше,
а потребление оперативки до 40%.С закачкой за сутки до 65% и после окончания закачки память не освобождается.Программами по освобождению памяти удаётся сбросить 1-3%.
Как освободить ,разгрузить без перезагрузки?
Оперативки 4гб. Windows7 32 макс.

Неушто у кого Windows7 32 макс и оперативка 4гб. и сутки работают Download Master или USDownloader или JDownloader или
проги торрента всё нормально по жору оперативки?

Valeant
16-10-2010, 09:44
Wadikkk,
Неушто у кого Windows7 32 макс и оперативка 4гб. и сутки работают Download Master или USDownloader или JDownloader или
проги торрента всё нормально по жору оперативки?

Вы сами ответили на свой вопрос, пока их не настроите на использование памяти, которая скидывается на диск не чего не изменится.

Wadikkk
16-10-2010, 13:36
Valeant, я немогу у Download Master,USDownloader,JDownloader в настройках найти про кэширование.

Wadikkk
18-10-2010, 18:05
Здраствуйте!Может кому тоже поможет.Решил свою проблему полностью удалением nod32,установил Avast.
Третьи сутки без перезагрузки и качалки работают,расход памяти норм. :yahoo:

M1ndW0rk
16-12-2010, 21:38
Win7 x64.
После пары часов работы что-то сжирает почти гигабайт оперативки(после загрузки системы обычно занято 1,2 гига):
http://img338.imageshack.us/img338/9927/memtr2.png

При том, что процессов заминающий такой объём просто нету:
http://img208.imageshack.us/img208/3183/memtr1.png

В чём может быть дело?

Jetro
24-12-2010, 20:02
Вот и у меня вылезла та-же проблема что и у других, точнее мешала она мне давно, но сейчас так достала что я отписался здесь.
Установлено 4 Гб оперативки (2 по 2), но так как стоит 32битная система то видно всего 3,25 гб. Файл подкачки поставил от 1 до 2 Гб. SuperFetch - сначала остановил службу, а когда увидел что это не помогло отключил её через реестр, но все равно никаких изменений это не принесло.
Стоит только запустить какую-то ресурсоемкую программу (будь то фотошоп, игра и тд), и с все, финиш - начинают вылетать программы из-за недостатка памяти, вылетают сообщения что мол программа такая-то сейчас вылетит, по этому сохраните данные и закройте её сами. При этом в диспетчере наблюдаю следующую картину - всего памяти 3327, доступно чуть больше гигабайта, свободно почти ноль, а вот кэшировано гиг, и кэшированая память не освобождается (кто там писал что при необходимости она освобождается?).
Вот сейчас захотел поиграть в Team Fortest 2, запустил, и спустя буквально 5 минут получаю сообщение что мол закройте-ка hl2.exe, а то памяти маловато, а через минуту Team Fortest 2 вешается и вылетает сообщение: "На компьютере недостаточно памяти. Чтобы освободить память для нормальной работы программ, сохраните файлы, а затем закройте или перезапустите все открытые программы.", и так 4 раза подряд. Запущено было только несколько программ - КИС2010, Стим, Team Fortest 2, и все, больше ничего постороннего. Куда девается память вообще непонятно...

Дайте совет как все таки разобратся с нехваткой памяти.

Skay888
26-03-2011, 18:44
При запуске своей винды Windows 7 Ultimate x64 оперативная память заполнено где то 800 м\байт, я не чего не делаю, а она заполняется и так заполняются все 4 гига оперативки. После перезагрузки повторяется. В диспетчере не показывает процесс который так много загружает, процессор вообще спокоен 5%, а система начинает сильно тормозить.
Провёл диагностику оперативной памяти
Проверял стандартной проверкой Windows 7 при загрузке, ошибок не обнаружена. Проверял программой Memtest86 3.6 было куча ошибок, проверял 2 модуля по 2г по отдельности, потом той же программой но версии 4.1 всё в норме.
Иногда бывает оперативка разгружается падает до 760 заполненных м\байт но также глючит всё и она тут же заполняется. Было как то что спало и комп работал нормально, но через какое то время опять началось заполнятся.
Запускал Windows с диска DVD там опера не заполнялось всё нормально было.
Отключил все программы и службы в автозапуске не помогло. Не хочу винду менять ПОМОГИТЕ!!!!!

Безопасный режим не работает при выборе пользователя перезагружается.

Morpheus
26-03-2011, 18:46
Skay888, переношу. Читайте тему.

Skay888
26-03-2011, 22:48
Morpheus, Решил проблему сам, комп зачем то занимал память фильмом который я накануне скачал через uTorrent. Хотел перенести файл он мне пишет что он используется explorer.exe, ну я загрузил с диска винду через неё переместил файл, запускаю и всё в норме!

Jetro
16-05-2011, 00:22
Вот и у меня вылезла та-же проблема что и у других, точнее мешала она мне давно, но сейчас так достала что я отписался здесь.
Установлено 4 Гб оперативки (2 по 2), но так как стоит 32битная система то видно всего 3,25 гб. Файл подкачки поставил от 1 до 2 Гб. SuperFetch - сначала остановил службу, а когда увидел что это не помогло отключил её через реестр, но все равно никаких изменений это не принесло.
Стоит только запустить какую-то ресурсоемкую программу (будь то фотошоп, игра и тд), и с все, финиш - начинают вылетать программы из-за недостатка памяти, вылетают сообщения что мол программа такая-то сейчас вылетит, по этому сохраните данные и закройте её сами. При этом в диспетчере наблюдаю следующую картину - всего памяти 3327, доступно чуть больше гигабайта, свободно почти ноль, а вот кэшировано гиг, и кэшированая память не освобождается (кто там писал что при необходимости она освобождается?).
Вот сейчас захотел поиграть в Team Fortest 2, запустил, и спустя буквально 5 минут получаю сообщение что мол закройте-ка hl2.exe, а то памяти маловато, а через минуту Team Fortest 2 вешается и вылетает сообщение: "На компьютере недостаточно памяти. Чтобы освободить память для нормальной работы программ, сохраните файлы, а затем закройте или перезапустите все открытые программы.", и так 4 раза подряд. Запущено было только несколько программ - КИС2010, Стим, Team Fortest 2, и все, больше ничего постороннего. Куда девается память вообще непонятно...
Дайте совет как все таки разобратся с нехваткой памяти. »
Совета так и не получил.

Вот вам еще картинка интересная:
http://i030.radikal.ru/1105/f9/920326c6d283.jpg
Объяснения до скриншота - Компьютер запущен около часа, на компьютере подключен интернет, запущено Касперский, Стим, и небольшая простенькая игра Trine. Через приблизительно 50-55 минут игры у меня начинают вылетать программы, даже Касперский вылетает с текстом "программа чего-то глюкнула, прикинь?", а так-же нередко отключается Аеро (до следующей перезагрузки), а вот в диспетчере можно понаблюдать красивую картину - кэшировано один-полтора гигабайта.
Как этот... хм... "плохой" кэш отключить полностью, и безвозвратно? Все варианты описанные в теме уже испробовал. Он меня уже достал! Как можно за такую кривую ось требовать такие деньги?




© OSzone.net 2001-2012