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


12

Это беспокоило меня годами, и до сих пор я не мог найти адекватного решения.

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

Там это ВСЕГДА свободная оперативная память. Например, это случилось со мной, и у меня было больше свободной оперативной памяти. Вирусов, шпионских программ и прочего бессмысленного нет - это проблема с ресурсами Windows , но вопрос в том, из какого ресурса у него заканчивается, как его определить и как его предотвратить?

Иногда это происходит после запуска определенных программ - например, сегодня это произошло, когда я запустил Photoshop CS4 и Flash CS4 одновременно. Я также заметил, что перезапуск The Bat (почтовый клиент от Ritlabs), похоже, на некоторое время избавляет от этой проблемы, но опять же, это происходит на машинах, на которых даже не установлен The Bat.

Итак, что именно происходит? Симптомы:

  • нажатие alt-tab больше не вызывает список - он просто мгновенно переходит к следующему окну, очень похоже на то, как работает Alt-Esc, однако в этом случае это происходит из-за нехватки ресурсов для вызова alt- вкладка меню

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

  • случайные программы начнут пропускать случайные части - например, верхние меню Firefox могут исчезнуть, получить частичные выборки или перестать работать вообще. IE может потерять несколько своих панелей инструментов. Некоторые программы могут не перерисовываться или просто сереть там, где раньше был пользовательский интерфейс.

  • Сама Windows никогда не жалуется на нехватку ОЗУ, виртуальной памяти или чего-либо еще, но ей не хватает чего-то .

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

Ответы:


12

Может быть утечка дескриптора в программе, которую вы запускаете. У меня была ошибка в одной из моих программ, которая выявляла эти проблемы, при запуске новых программ возникали проблемы с отсутствующими или неполными панелями инструментов, не отображались диалоговые окна file-> open, неправильно работали табуляции alt-tab, странные ошибки и т. Д.

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

К сожалению, что именно «большое число» полностью зависит от программы.

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


1
Ах, теперь мы куда-то добираемся. Возможная причина И способ отследить это. Спасибо, тем временем проголосовал. Будем следить за виновниками. До сих пор Firefox, Probe2 (от Asus), Winamp и Flash CS4 имеют наибольшее количество объектов GDI - более 1000 каждый. Летучая мышь имеет 701, и я буду внимательно следить за ней.
Артем Руссаковский

Если честно, это не так уж плохо.
Лассе В. Карлсен

Хех, ну в данный момент система не выходит из строя, так что, действительно, это не так.
Артем Руссаковский

Хорошо, система сейчас падает. Вот количество худших объектов GDI: firefox - 2382, probe2 - 1375, winamp - 1239, flash - 1069, snagiteditor - 971, thebat - 758. Самый высокий за ручку: действительно подозрительный spoolsv.exe с 11 456 ручками, ftprush - 5972, система - 2702, svchost.exe - 2384, csrss.exe 1238, firefox - 1170, flash - 1036, затмение - 962. Хм ...
Артем Руссаковский

Ах, похоже, мне нужно перезапустить, чтобы изменения кучи вступили в силу, как указано здесь support.microsoft.com/default.aspx?scid=kb;EN-US;184802 . Было бы здорово узнать, где именно я получаю максимум.
Артем Руссаковский

6

Это потому, что в Windows есть так называемая «куча рабочего стола», в которой живут большинство объектов графического интерфейса, меню, значки и все, что у вас есть. И это пространство довольно ограничено и, что более важно, фиксировано по размеру.

См. Q126962: В куче рабочего стола для решения и прочитайте Raymond Chen для получения дополнительной информации.


Да, я упомянул это в конце моего вопроса. Спасибо за дополнительную информацию об этом. Пока это достойный ответ.
Артем Руссаковский

О, извините, я не заметил это последнее предложение :) Но это как раз та причина, вы можете проверить, какой процесс использует большинство дескрипторов в Process Explorer, убить его, и только это устранит симптомы.
Вава

2

Термин «ресурсы» или «системные ресурсы» в Windows относится к различным объектам (таким как дескрипторы окон) внутри операционной системы. Windows ограничивает пространство, выделенное для ресурсов, чтобы они не могли использовать всю системную память. Вот почему у вас много свободной памяти, но недостаточно места для ресурсов.

Марк Руссинович и Дэвид Соломон (из известности Winternals и Sysinternals ) написали книгу, которая подробно описывает внутренности Windows: Windows Internals. Четвертое издание охватывает Windows 2000, XP и Server 2003 и доступно само по себе или как часть Windows Server 2003 Resource Kit. Пятое издание будет выпущено в июне 2009 года и будет охватывать Windows Vista и Server 2008. Один или оба из этих томов могут быть вам полезны, но имейте в виду: это не просто чтение субботним днем!


1

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


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

Кроме того, я ищу способы диагностики, количественной оценки и выявления проблемных ресурсов. Любые указатели там были бы хорошими.
Артем Руссаковский

Обозреватель процессов ( technet.microsoft.com/en-us/sysinternals/bb896653.aspx ) - это первый инструмент, который я бы использовал - что потребляет ресурсы? И сколько памяти мы здесь говорим? Есть ли по крайней мере 1 ГБ на каждой из этих машин или меньше?

Я также использую Extended Task Manager ( extensoft.com/?p=free_task_manager ), чтобы следить за тем, что происходит, лучше, чем встроенный.

Да, и наконец, verifyier.exe ( support.microsoft.com/kb/244617 ) может помочь в диагностике и устранении проблем с драйверами.

0

"действительно подозрительный spoolsv.exe с 11 456 дескрипторами"

Это спулер заданий на печать ... У вас есть ожидающие задания на печать или их нужно выбросить?

Поврежден драйвер принтера?


0

Вы установили какое-то "программное обеспечение для настройки"? Большинство из них возиться с настройками они не должны. И большинство применяют настройки, которые только улучшают производительность, но снижают реальную производительность рабочей нагрузки (например, интерактивность), поворачивая ручки диспетчера памяти.


Нет, не имею - все установки Windows XP страдают от этой проблемы, по крайней мере, когда вы используете их на уровне опытного пользователя.
Артем Руссаковский

Я опытный пользователь среди опытных пользователей, и я вижу такие проблемы очень редко. Я думаю, что вы запускаете несколько хитрых программ.
Джейми Ханрахан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.