Показать полную графическую версию : Утечка памяти (RAM, ОЗУ) - все вопросы
berkut_0
25-04-2024, 21:44
попробую опять, может вспомню почему »
Со старта без файла подкачки - уже какие-то непонятные фокусы
Занятая виртуальная память (System Commit) не равна занятой физической RAM, хотя где-то писалось, что виртуальная - это RAM + файл подкачки
Тут уже дурь какая-то
Буду по наблюдать
Cereal Keeler
26-04-2024, 11:12
Занятая виртуальная память (System Commit) не равна занятой физической RAM »
Где это вы увидели?
Вообще, подкачку вы совсем зря отключили, но да ладно. Кэширование дисковых операций тоже не надо пытаться отключить, давить на кэш тоже не надо.
Искать утечку вам стоит начинать, когда становятся заметны её эффекты. Судя по всему, что вы описали, утечка есть, но она медленная и начинает портить жизнь только после десятков или сотен часов работы.
berkut_0
26-04-2024, 18:46
что вы описали, утечка есть, но она медленная и начинает портить жизнь только после десятков или сотен часов работы »
Примерно так и есть, но "набегание" утечки заметно почти сразу, если знать куда смотреть
Важное замечание - десятки/сотни часов как работы, так и простоя бездействия, то есть можно включить комп, и через 100 часов утечка будет видна
Где это вы увидели? »
На скриншоте выше, что я прикладывал, есть System Commit - 10.0 GB, и Physical Memory - 5.6 GB
10.0 != 5.6
Сейчас 22 часа аптайма, System Commit он же Виртуальная память, занимает 41 гигабайт при том, что RAM показывает занято только 13
В фоне висит игра на паузе, поэтому занято много, закрывать игру не хочу - у меня же памяти много ...
Но вчера вечером после перезапуска - вместе с игрой System Commit показывал 35 гигабайт, то есть 5+ гигов уже куда-то утекло само по себе
Учитывая что файл подкачки отключён - текущий показатель RAM во всех смыслах есть ложь
Смотреть надо на System Commit, туда происходит реальная утечка, но я не знаю, как эту утечку отслеживать
Если допустить полное заполнение System Commit - для системы это будет критикал, без преувеличений
Никакие процессы не выглядят подозрительными, а поочерёдным исключением того или иного софта - я занимаюсь на протяжении 10 лет
Единственное что я не могу исключить принципиально - системный менеджер памяти, может быть какие-то свои привычки, которые неочевидным образом вызывают подобную утечку
подкачку вы совсем зря отключили »
Это всё ради эксперимента, и судя по результатам этого эксперимента - я планирую выделять подкачку размером в 192 гигабайта, чтобы можно было держать аптайм по дольше
Кэширование дисковых операций тоже не надо пытаться отключить, давить на кэш тоже не надо. »
Мне это тоже ради эксперимента стоило бы сделать ...
Cereal Keeler
27-04-2024, 13:03
На скриншоте выше, что я прикладывал, есть System Commit - 10.0 GB, и Physical Memory - 5.6 GB
10.0 != 5.6 »
Commit - это сколько на данный момент запрошено (сумма колонки private bytes на главной странице process explorer) всеми запущенными процессами, а не сколько занято реально.
Private Bytes refer to the amount of memory that the process executable has asked for - not necessarily the amount it is actually using. They are "private" because they (usually) exclude memory-mapped files (i.e. shared DLLs). But - here's the catch - they don't necessarily exclude memory allocated by those files. There is no way to tell whether a change in private bytes was due to the executable itself, or due to a linked library. Private bytes are also not exclusively physical memory; they can be paged to disk or in the standby page list (i.e. no longer in use, but not paged yet either).
Working Set refers to the total physical memory (RAM) used by the process. However, unlike private bytes, this also includes memory-mapped files and various other resources, so it's an even less accurate measurement than the private bytes. This is the same value that gets reported in Task Manager's "Mem Usage" and has been the source of endless amounts of confusion in recent years. Memory in the Working Set is "physical" in the sense that it can be addressed without a page fault; however, the standby page list is also still physically in memory but not reported in the Working Set, and this is why you might see the "Mem Usage" suddenly drop when you minimize an application.
Это всё ради эксперимента »
тоже ради эксперимента »
Уверяю, ни к чему хорошему эти эксперименты не приведут. Ситуацию с утечкой точно не решат.
berkut_0
27-04-2024, 16:52
Commit - это сколько на данный момент запрошено (сумма колонки private bytes на главной странице process explorer) всеми запущенными процессами, а не сколько занято реально. »
Это всё теория
А вот как выглядит практика
Если это количество станет максимально возможным - то система будет лагать и падать
Windows 7 ныла, что ей недостаточно памяти, хотя при этом же - оперативной памяти вроде как, было свободно много
Windows 10/11 - просто начинает жёстко тупить
И это отлично отслеживается, именно заполнением Виртуальной памяти (System Commit)
Лечится перезапуском, и увеличением количества памяти примерно до бесконечности, саму утечку локализовать у меня - не получается
То есть, на практике - это сколько реально занято памяти, согласно поведению и лагам при переполнении, бонус - там постоянная утечка
Из текущих наблюдений - течёт Mapped File, в подробностях - самые разные файлы самых разных процессов (браузер, игры, телега), в том числе те, с которыми работал лично я
Если в RAMMap выполнить "очистку" - Mapped File уменьшится, но System Commit - останется прежним, и продолжит расти
Сейчас это так же видно и без файла подкачки
Petya V4sechkin
27-04-2024, 18:41
Из текущих наблюдений - течёт Mapped File, в подробностях - самые разные файлы самых разных процессов
Посмотрите в Process Explorer - меню Find - Find Handle or DLL - по нескольким именам больших файлов, какие процессы их используют.
berkut_0
27-04-2024, 19:55
Petya V4sechkin, какие-то процессы и файлы находит
Но не все
Приложил скриншот, из выборочных примеров, по киберпанку, вайберу и скайпу - находит (они открыты и это выглядит как норма)
visualstudio и samsungmagician - не находит, хотя в списке File Summary они есть
Эти программы я не открывал, но их кто-то зачем-то и почему-то, выгрузил в оперативу
А тем временем, двое суток непрерывного аптайма - и реальные 50 гигабайт оперативы уже безвозвратно съедены хрен пойми какими файлами )
Если закрыть игру - какая-то часть памяти высвободится, но это не годится никуда - двое суток игра просто висела в фоне, а память уже на исходе
Закрытие игры лишь отложит необходимость перезапуска, без нормальной возможности зайти поиграть
Petya V4sechkin
27-04-2024, 20:06
по киберпанку, вайберу и скайпу - находит
Там в окне поиска отображается, какие процессы их используют.
berkut_0
27-04-2024, 20:10
Petya V4sechkin, они открыты и это выглядит как норма
Как не норма - выглядят файлы, которые я даже не открывал ни разу
Есть один файл, я с ним уже поработал, он всё ещё висит в Summary, но по названию этого файла - Process Explorer ничего не находит
То есть файл просто висит в Mapped File без привязки к процессу, сам по себе
И таких файлов там много
Petya V4sechkin
27-04-2024, 20:13
они открыты
Смотрите в окне поиска, какими процессами они открыты.
berkut_0
27-04-2024, 20:32
Petya V4sechkin, viber.exe открыт как самим вайбером, так и процессом explorer.exe - то есть проводником
Такая же история и со скайпом, но у skype.exe - проводников несколько, у вайбера только один
Может быть такое, что проводник выгружает файлы в оперативную память, но не освобождает эту память
Точнее - думает что освобождает, но на самом деле нифига подобного, и файлы продолжаю там болтаться забытые
Это лишь моё предположение, я проверил его методом, копирования файла размером 20 мегабайт
До копирования, в Mapped File его не было, после - появился и не исчезает
Во время копирования - попытался найти его, но не успел, слишком мало весит - окно копирования даже не успело появиться
После копирования - в Mapped File есть, в Process Explorer не находит
Провернул такую же махинацию с файлом весом 215 мегабайт - история повторилась (окно копирования появиться не успело)
До копирования - файла в Mapped File не было, после - появился и не исчезает
Вроде как, характер утечки определить получилось - работа с файлами, копирование/перемещение
Теперь вопрос - как это чинить ?
Правда, это не объясняет утечку в простое, и то что в памяти могут лежать файлы, которые я не трогал
Petya V4sechkin
27-04-2024, 20:50
berkut_0, попробуйте с помощью ShellExView (http://www.nirsoft.net/utils/shexview.html) отключить сторонние (не Microsoft) элементы (правой кнопкой мыши - Disable Selected Items) и перезагрузиться.
Если не поможет, включите обратно.
berkut_0
27-04-2024, 20:59
Petya V4sechkin, ок, спасибо
Перезагрузку буду делать позже, как сделаю - понаблюдаю, и вернусь
Не знаю когда это будет, может через день-два
Вообще странно, у меня нет ничего постороннего в проводнике
Всё родное как было при установке винды
UPD увидел нестандартные, их там не много
Ещё, это не объясняет утечку в простое, и то что в памяти могут лежать файлы, которые я не трогал
berkut_0
30-04-2024, 23:51
Работал с дровами
Планирую в железо лезть и ребут
Случайно обнаружил, что виртуальная память резко просела в три раза, сама по себе
Работал я с сетевым драйвером, Wi-Fi карты (их у меня несколько)
У меня есть ещё зацепки, куда рыть
Кто может подсказать, что это было ?
Из дополнительных сведений, я выполнял удаление и установку драйвера TP-Link, там именно программа с драйвером внутри
Отдельного драйвера нет
Варианты, почему могла дропнуться System Commit
1 - сказался именно драйвер устройсва
2 - сказалось выполнение удаления/установки программы драйвера
Правда не совсем понятно, как это может быть связано с течью в Mapped File
UPD прошло ещё три дня почти, с последнего перезапуска (аптайм 2 дня 20 часов)
По факту запуска деинсталлятора драйвера - на глазах произошло высвобождение 15 гигов на System Commit
Деинсталляцию доводить до конца - не пришлось (точнее я её просто отменил в появившемся окне)
Это то что я уже был точно уверен, что туда что-то натекло
Через время опять проверю, это происходит от запуска конкретного/другого/любого деинсталлятора
Добрый день. Windows 10, возникла проблема. Как вылечить?
+ Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 3 символов.
Petya V4sechkin
17-06-2024, 11:42
juvf, за 8 лет (http://forum.oszone.net/post-2634007.html#post2634007) ничего не изменилось: утечка в Page Table.
RamMap - вкладка Processes - отсортируйте по имени - посмотрите, присутствует ли огромное количество экземпляров какого-то процесса.
присутствует ли огромное количество экземпляров какого-то процесса. »
да, присутсвует. ninja.exe, rg.exe, conhost.exe, и другие.
Вчера перегрузил ПК. было все норм. сейчас опять ОЗУ потекло. уже 60% из 32 занято. приложений мало запущено и RAMMap дает немного другую картику.
Petya V4sechkin
18-06-2024, 10:56
juvf, а 8 лет назад вы причину нашли? С высокой вероятностью, тот же кривой софт виноват.
а 8 лет назад вы причину нашли? »
я помню, что такая проблема был, и точно помню что её решил. не помню как и в чем была проблема (((
прямо щяс также, как 8 леь назад, проверил - открыл калькулято, закрыл - остался в RamMap в Processes процесс calc1.exe, ещё раз открыл-закрыл - второй процесс и т.д.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC