Показать полную графическую версию : Кэшируется вся память. Так ли это плохо?
Страниц :
1
2
3
4
5
[
6]
7
8
9
10
Игорь Лейко
16-05-2011, 00:59
Совета так и не получил. »
Так данные неполностью привели. Сколько памяти выделено и кому? Но это офтопик, поскольку прямого отношения к кэшированию не имеет.
А, на картинке видно. Файл подкачки мал.
Petya V4sechkin
16-05-2011, 09:28
Через приблизительно 50-55 минут игры у меня начинают вылетать
Запустите RAMMap (http://technet.microsoft.com/en-us/sysinternals/ff700229) и выложите скриншот вкладки Use Counts (в какой категории утечка) во время глюка.
Выкладываю полностью все данные. Скриншоты сделаны через одну-две минуты после ошибки "На компьютере недостаточно памяти", при чем постоянно лезущие ошибки "Закройте ПриложениеТакоеТо.ехе для предотвращения потери данных" были полностью проигнорированы.
http://s06.radikal.ru/i179/1105/c8/cfe856a7c32a.jpg
http://s44.radikal.ru/i106/1105/fd/a8fb1a7ac6d0.jpg
Во время снятия скриншотов кэшированой памяти было около гигабайта. Если подсчитать всю память занимаемой процессами то получается менее 1,5 гигабайта (я даже не поленился подсчитать). Почему не освобождается кэшированая память, даже при том что SuperFetch не только в службах, а и в реестре был давно отключен?
А, на картинке видно. Файл подкачки мал. »
http://s56.radikal.ru/i153/1105/60/82ae91b3a0d7.jpg
Как видим файл подкачки от одного до двух гигабайт (о чем я кстати уже писал), и этого мало? Может системе выделить весь двухтеррабайтный винт под файл подкачки? В ХР у меня кстати файл подкачки был до гигабайта, и этого с головой хватало.
Игорь Лейко
19-05-2011, 23:55
Как видим файл подкачки от одного до двух гигабайт »
Фактически он на диске сколько занимает? Если его размер на время уменьшить до нескольких десятков мегабайт и перегрузиться, сколько будет в настройках и сколько на диске? По картинке в предыдущем сообщении не видно чтобы он был большим: при 3327 Мб доступной системе физической памяти максимальный размер выделенной - 3558. То есть получается, что файл подкачки 231 Мб.
Кэшированная память не освобождается потому, что ее освобождение ничего не даст - львиная доля кэша занимает память, уже выделенную программам (но пока не используемую ими). И другим программам ее отдать не получится. На картинке в предыдущем сообщении видно, что программы могут получить дополнительно только 214 Мб.
Игорь Лейко, на сколько я понял кэш оперативной памяти сделан исключительно под SuperFetch (если я ошибаюсь, то поправьте), но он у меня отключен, и не смотря на это память все-же кэшируется, но освобождаться не хочет (хотя о том что она при надобности освобождается писали в этой-же теме).
На сколько я понял выделенная программам кэшированая память не освобождается потому что на компьютере запущено много программ, но тут возхникает другой вопрос - у меня фактически запущено мной только 10-15 фоновых программ, и одна-две основных, остальное-же это процессы системы. Как по мне 15 легких программ не так уж и много для многозадачной ОС, почему для них выделяется 1 гигабайт оперативной памяти свыше той что уже занята - для меня загадка, ведь если не учитывать основную задачу то все процессы вместе с системными занимают пространство в памяти раза в 2-2,5 меньше того, которое им выделено системой.
Ладно, не буду рассуждать на тему, которую понимаю не полностью. Остановимся на том что мне нужно сделать чтобы больше не наблюдать как у меня феерически крашаться программы при том что свободно еще больше гигабайта памяти.
Задам тот-же вопрос который задавал на прошлой странице - как безвозвратно отключить кэш? От него только одни не приятности, и если он так важен то почему мы так беззаботно жыли без него во времена ХР?
Кстати я даже хотел докупить еще четыре гигабайта оперативки, но после разговора с одним знакомом, в которого на 64-битной системе с 8 гигабайтами памяти случаются те-же проблемы (хотя и реже чем у меня), я понял что этим дело не решиться.
Какой у меня выход?
Игорь Лейко
20-05-2011, 00:46
на сколько я понял кэш оперативной памяти сделан исключительно под SuperFetch (если я ошибаюсь, то поправьте), »
Ошибаетесь. Суперфетч памяти вообще практически не занимает, только несколько мегайбайт (в тяжелых случаях - пару десятков мегабайт) под свои данные.
Выделенная программам память включает в себя все общие модули, которые используются этими программами. Для каждой программы выделяется память для этих общих модулей, хотя фактически имеется только один экземпляр модуля. Поэтому выделяется всегда больше, чем используется физически.
Остановимся на том что мне нужно сделать чтобы больше не наблюдать как у меня феерически крашаться программы при том что свободно еще больше гигабайта памяти. »
Картинку со свободным гигабайтом выложите, пожалуйста. На той, что Вы выкладывали на прошлой странице, свободно только 23 Мб.
Задам тот-же вопрос который задавал на прошлой странице - как безвозвратно отключить кэш? »
Никак. Да и незачем ухудшать работу ОС. ;) Тем более, что все памяти, которую занимает кэш, программам отдать не получится.
От него только одни не приятности »
От него почти всегда только польза, как это объяснялось (http://www.aha.ru/~mwz/texts/memory_management.html) еще во времена Win98. ;)
Какой у меня выход? »
учиться, учиться, учиться и ещё раз учиться... :idontnow:
Знаете, когда я избавился от львиной доли проблем с компом и виндой? Когда прекратил "улучшать" и "оптимизировать", ковыряясь в биосе и отключая "ненужные" службы.
Не мешай железу ездить! золотые слова...
Игорь Лейко, то есть Вы хотите сказать что мой компьютер ведет себя именно так как надо, ка было задумано Мелкомягкими? Вот смотрите - я не могу нормально на нем работать ибо программы вылетают так быстро как это вообще возможно, и это при том что компьютер мой сложно назвать слабым.
От него почти всегда только польза, как это объяснялось еще во времена Win98. »
То есть это появилось еще в 98 окнах? Ладно, вот посмотрите:
http://s40.radikal.ru/i088/1105/c8/d497bcb8c963.jpg
Это скриншот сделан на рабочем компьютере под управлением Windows Server 2003, с 2 гигабайтами оперативной памяти на борту. На компьютере заснята средняя рабочая обстановка - Огнелис с 150 вкладками, две копии Rad Studio с проектами, плеер, виртуалка, много фоновых программ, а так-же к компьютеру подключены два терминала, на которых в это время чем-то заняты сотрудники, при этом нет ни малейшего намека на тормоза, не говоря уже о вылете программ из-за нехватке памяти. Если-бы я запустил такое количество программ на домашнем компьютере, то минут через 30-40 первым, вероятней всего, упал-бы Файрфокс, а за ним, уже и Делфя с виртуалкой, если компьютер сразу не подвешается. У меня кстати уже как-то вылетел Делфи с несохраненным проектом, когда я виртуалку для отладки запустил - очень весело было скажу я вам.
В ХР у меня из-за нехватки памяти программы не вылетали, потому что заполнить 4 гигабайта оперативки было попросту нечем, а сейчас у меня нет доступа к 35-40% оперативной памяти, потому что она постоянно кэширована, и соответственно использовать её невозможно.
Картинку со свободным гигабайтом выложите, пожалуйста. »
Я имел ввиду гигабайт кэшированой, ничем не занятой памяти, которую использовать нет возможности.
учиться, учиться, учиться и ещё раз учиться...
Знаете, когда я избавился от львиной доли проблем с компом и виндой? Когда прекратил "улучшать" и "оптимизировать", ковыряясь в биосе и отключая "ненужные" службы.
Не мешай железу ездить! золотые слова... »
А давайте Вы не будете судить о моих знаниях об компьютерной технике. Я уже давно вышел из возраста когда любил эксперименты. Вы уж меня извините, но сейчас меня такие как Вы помощи просят, после неудачных экспериментов со службами, биосом, какими-то сборками от народных умельцев, программами "Для поднятия рейтинга Вконтакте..." и тд. Кстати зря Вы о биосе написали - я его людям по телефону настраивать помогаю, чуть-ли не наизусть знаю все пункты АМИ, Феникса, да я даже со старым Фениксом знаком (который во времена 486 был), но совладать с оперативной памятью в Windows 7 не могу. Блин, да я-бы уже давно Убунту или Слаку использовал-бы если-бы Вайн и/или Кроссовер поддерживали все требуемые мной виндовые программы - там таких проблем попросту нет.
Игорь Лейко
20-05-2011, 15:56
Вы хотите сказать что мой компьютер ведет себя именно так как надо, ка было задумано Мелкомягкими? »
Не совсем так. Непонятно расхождение между заданным и фактическим размером файла подкачки. Вы эту проблему замечать не хотите.
Ладно, вот посмотрите: »
Возможно, на Вашем компьютере какая-то из программ (или драйвер) имеют утечку памяти. Но Вы, опять же, не обратили внимания на предложение Petya V4sechkin. Возможно, у Вас установлено заметно больше программ, чем на сервере. Даже наверняка. ;)
при этом нет ни малейшего намека на тормоза, не говоря уже о вылете программ из-за нехватке памяти. »
С четырьмя гигабайтами файла подкачки неудивительно, что нехватки памяти не возникает. Поставьте себе тоже четыре - и станет яснее, в чем проблема.
а сейчас у меня нет доступа к 35-40% оперативной памяти, потому что она постоянно кэширована »
Доступа нет не поэтому. Но повторять одно и то же снова и снова не хочется.
Я имел ввиду гигабайт кэшированой, ничем не занятой памяти, которую использовать нет возможности. »
Пожалуйста, не заставляйте других гадать, сказали ли Вы то, что хотели сказать, или говорите одно, а подразумеваете совсем другое. Я недумаю, что в форуме много телепатов.
Файл подкачки поставил от 1 до 2 Гб »
Попробуйте сделать его фиксированным и одним куском.
Petya V4sechkin
20-05-2011, 18:42
Скриншоты сделаны через одну-две минуты после ошибки
Честно говоря, не замечаю ничего криминального.
Странно. Если бы утечка была в Desktop Heap (ее RAMMap не отображает), симптомы были бы другими (невозможность открыть новые окна).
Попробуйте рекомендации
Как определить, является проблема системной или вызвана сторонним приложением/службой (http://www.outsidethebox.ms/10368/)
Посмотрите, нет ли ошибок в журнале событий (http://oszone.net/10680) -> Журналы Windows.
dr-organizer
20-05-2011, 19:33
Службу SuperFetch отключил!
У меня Семерка постоянно работает с 0...30MB свободной памяти и это радует. Считаю, что Superfetch - это то, ради чего уже стоит перейти на Windows 7. Важно не сколько свободной памяти, а как хорошо всё это работает. ;)
Добрый вечер. У одного человека такая проблема с пропажей памяти в Windows 7 Ultimate (сборка 32 битная):
http://linkme.ufanet.ru/images/b25a9b4c2101840edc8731c1e710a084.png
http://linkme.ufanet.ru/images/475ce790a969bbe621e08d02df5248ab.png
Интересно, что кешировано и доступно немного. Лично у меня оригинальная Home Premium - кешировано и доступно примерно одинаково - по 800-900 мегабайт (при 2 гигабайтах), у него - кешировано и доступно немного.
Добрый вечер.
В подобных ситуациях с памятью удобно юзать прогу
"VMMap - утилита для диагностики неполадок на основе потребления системной памяти: позволяет получить визуальную карту распределения физической и виртуальной памяти."
Здорово помогает вычислить "виновника торжества" :)
Ю.А., ну низачот, ну. Передрал описание с софтодрома и теперь: ву-а-ля, я знаю панацею в виде "визуальной карты".
Жрет ресурс, да?
1) Отключите сторонние службы;
2) В безопасном режиме проверьте (в принципе тож самое);
3) Ставить нормальную сборку.
Если при соблюдении любого из трех вышеизложенных условий проблема останется, тему стоит переносить в раздел "Железо" или "Лечение".
Petya V4sechkin
21-05-2011, 08:11
У одного человека такая проблема
Пусть человек запустит RAMMap (http://technet.microsoft.com/en-us/sysinternals/ff700229) и выложит скриншот вкладки Use Counts во время глюка.
Petya V4sechkin, Ю.А.,
http://linkme.ufanet.ru/images/11a0cd64fd539d8e297287e7f0f5dc90.png
Petya V4sechkin
21-05-2011, 09:59
Celsus, опять же ничего подозрительного.
Можете еще на вкладке File Summary посмотреть.
Celsus,
Для вас по скринам хочу обратить внимание на две программы которые могут потреблять память которую вы не видите:
скорей всего mTorrent по своим настройкам располагать скаченное в ОЗУ и потом на винт, так же интересна своей работой с памятью такая программа как avira - avguard которая по скрину например по рабочей у вас 23МБ, а реально плюс виртуальная может и за 200МБ, ну это так к слову.
И не путайте память которая свободная после загрузки ПК спустя 5мин будет отдаваться под кэш службой SuperFetch и которая будет отбираться при запуске программ пользователем, которые в свою очередь будут например создавать буфера в памяти и т.д.
Лучше все таки пользоваться ProcesExplorer - пр.кнопкой мыши на строке Process PID CPU .... добавить всего два параметра для начала - Select Columns - закладка Process Memory - Working Set, Virtual Size, Private Bytes.
Или например как рекомендовали ранее - VMMAP, но также можно из нее запустить ПО (большии ПО не проверял на маленьких отлично работает на пример VLC и просмотр фильма). Запустить VMMAP в окне Select or Launch Process выбрать закладку Launch and trace a new process - Application -> выбрать приложение на запуск. После запуска приложения будет реальная картина воспользоваться чуть ниже кнопкой Timeline или кнопкой Trace..., кнопка F5 обновить основное окно.
Valeant, Разница в показателях Диспетчера задач и Process Explorer большая
Диспетчер задач (http://linkme.ufanet.ru/images/c98f4fd36df57e4c77473ff1159cac4d.png)
Process Explorer (http://linkme.ufanet.ru/images/aa367e0ab0502ad4337478c956030f5f.png)
Добавил в Диспетчере зада колонку Выделенная память (вроде она выполняет ту же функцию, что и Virtual size в Process Explorer)
Читал, что Windows 7 до последнего использует оперативную память, прежде чем трогать Файл подкачки. В общем, я это проверял и, похоже, это так: создавал динамический файл подкачки 32-1024, и обычно при несложных задач (музыка, фильмы) Файл подкачки таким и оставался. Иногда увеличивался до 150. Также, можно это посмотреть в Everest (Системная плата\память)
Например, сейчас текущая загрузка 229, пиковая 426. В Диспетчере задач из 2038 Кэшировано 900, Доступно 888, свободно 28.
Неясные моменты:
1. Кэшировано 900 - память, в которую кэшированы (загружены) файлы, они (только 888 из 900, какие-то файлы, видимо, останутся) будут выгружены, если какой-то программе потребуется память. (На что указывает пункт Доступно)
Система начала использовать файл подкачки (текущая загрузка 229), потому что размер кэша уже не умещается в физической памяти (Свободно 28)? Означает ли это: если кэширована почти вся память, есть риск использования файла подкачки, и в таком случае лучше создавать RAMDISK и в нем создать файл подкачки (на XP так и делаю)? Если не ошибаюсь, не все кэшируемые файлы одинаково необходимы, некоторые просто остались (не выгрузились), а в файле подкачки могут быть файлы, обращения к которым частые, и лучше их не гонять между RAM и HDD. Поможет ли тут твик DisablePagingExecutive=1. Или проще поставить больше оперативной памяти? =))
2. Виртуальная память в Everest, Выделенная память в Диспетчере задач и Virtual size в Process Explorer обозначают память, которая может понадобиться программам, например, программа (процесс), которая сейчас использует 50, сообщает системе, что ей может понадобиться 150. Система в реальности не делает физических резервов в оперативной памяти или на жестком диске, а просто учитывает возможные (виртуальные) потребности процессов (программ). Таким образом, Виртуальная память отображает не существующую, но вероятную ситуацию, когда все процессы одновременно будут потреблять максимум памяти. Из этого следует, что теоретически лучше, если размер физической памяти равен или больше размера используемой (занятой) в данный момент виртуальной памяти. Сейчас Виртуальной памяти (Everest) занято 2549 из 6115, физической 2038. Кстати, откуда система берет значение 6115 - произвольный верхний порог?
3. Место под файл подкачки сейчас 1300 из 4096, какой в этой операции смысл, если файл подкачки уже есть 2048-2048?
4. Вопрос по предыдущей "проблеме" (не уверен, что у человека проблема, он просто задал вопрос, почему так, но не хватает ли приложениям памяти - я не знаю). Колонка Private Bytes показывает, сколько памяти программа использует, и эту память система у нее не отнимет (как в случае с кэшем, который то ли выгружается в файл подкачки, то ли удаляется). Колонка Virtual Size обозначает память, которая теоретически может понадобиться процессу. Колонка Working Set осталась загадкой: что я понял из 1 сообщения на 1 форуме, она показывает используемую процессом память, которая именно в оперативной памяти, в то время как Private Bytes показывает также ту, которая в файле подкачке. Или нет? В чем отличие Working Set и Private Bytes?
5. (Возможно, выходит за рамки темы) Имеет ли смысл использовать cacheset в наборе Sysinternals, если Windows 7 и так кэширует все до тех пор, пока не кончается свободная память (из-за чего далее кэширует в файл подкачки, кажется)? Если смысл есть, какой кэш выставлять в cacheset на домашнем компьютере с 2 ГБ памяти?
Связан ли а) cacheset, б) настройка Быстродействия в Свойствах компьютера\Дополнительно\Быстродействие\Параметры\Дополнительно "для программ" и "служб, работающих в фоновом режиме" (на обычном домашнем компьютере вроде лучше ставить для программ), в) параметр в реестре LargeSystemCache, г) параметр в реестр SystemPages (как и с cacheset, неясно, какое значение ставить для домашнего компьютера и ставить ли?
Правда, скорее всего я все упростил и перепутал, в таком случае больше в эти дебри лезть не буду =)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC