У меня возникли проблемы с пониманием того, что происходит с моим рабочим ПК. Всякий раз, когда я его загружаю, он работает нормально некоторое время, а затем начинает случайным образом показывать ошибки диска. Отображаемая ошибка часто содержит сообщение «недостаточно памяти для обработки этой команды», хотя в зависимости от приложения, в котором произошел сбой, это может быть по-разному. Это происходит уже несколько недель и становится все хуже.
Вот что меня беспокоит:
- Похоже, что это никогда не влияет на критические части системы (никаких BSOD, никаких зависаний).
- Похоже, что затронуты только некоторые приложения, которые через некоторое время отказываются работать правильно: Outlook 2010 больше не может загружать RSS-каналы, Firefox 6 или IE9 не могут без сбоев загружать что-либо больше 3 МБ, Центр обновления Windows дает сбой, все установщики msi дают сбой, Visual Studio 2010 начинает давать сбои странным образом...
- Это происходит только после некоторого времени использования (обычно через 3 часа, но, похоже, установка программы или многократная компиляция сокращает этот срок)
- Перезагрузка решает проблему (временно).
Система:
- Операционная система — Windows 7 Pro Spanish SP1, 32 бита.
- Система представляет собой HP Compaq 6000 Pro с 4 ГБ памяти (доступно только 3,4 ГБ, поскольку система 32-разрядная), одним жестким диском емкостью 500 ГБ.
- Установленные приложения включают: Visual Studio 2010, SQL Server 2008 R2, VMWare Workstation 7, Microsoft Security Essentials, Office 2010. Завершение работы всех связанных служб и процессов, похоже, ничего не меняет.
Диагностика, которую я провел на данный момент:
- Жесткий диск: 465 ГБ, 165 ГБ свободно
- Process Explorer: физическая и виртуальная память, похоже, в порядке (файл подкачки 5,3 ГБ, использование физической памяти 70%, системное выделение 39%)
- Средство диагностики памяти Windows: ОК
- CHKDSK вернул:
488282111 KB total disk space. 281668248 KB in 265779 files. 150188 KB in 62949 indexes. 0 KB in bad sectors. 571755 KB in use by the system. The log file has occupied 65536 kilobytes. 205891920 KB available on disk.
Для тех, кто не говорит по-испански, это означает, что все в порядке.
- Средства диагностики SMART (DiskCheckup) сообщают, что все значения нормальные.
- температуры в пределах нормы (HWinfo).
- Похоже, что просмотрщик событий не содержит никаких значимых сообщений.
- запустил CCleaner 3, без какого-либо заметного эффекта.
Я думал о каком-то ограничении числа файлов (между проектами Visual Studio и другими приложениями на жестком диске около 300.000 файлов), но не смог ничего найти. Возможно, что-то связано с использованием временных папок (это единственное объяснение, почему приложения зависают, а Windows нет), но я не могу это подтвердить.
Единственное, что я не могу выяснить, это то, что chkdsk сообщает о 65 МБ для журнала, это нормально. Кажется, начиная с Vista, он всегда так сообщает.
Какие еще инструменты для очистки/диагностики вы знаете?
Редактировать: С тех пор, как я впервые опубликовал вопрос, я запустил несколько других инструментов:
- Seagate SeaTools (инструмент анализа от производителя жестких дисков): полный тестовый прогон пройден успешно.
- Intel Rapid 10.1 (средство устранения неполадок контроллера HD от производителя): с HD все в порядке.
- Монитор кучи рабочего стола Microsoft:
Инструмент мониторинга информации о куче рабочего стола (версия 8.1.2925.0) Авторские права
(c) Корпорация Microsoft. Все права защищены.
Идентификатор сеанса: 1 Общее количество рабочих столов: (46464 КБ - 11 рабочих столов)
WinStation\Desktop Размер кучи (КБ) Скорость использования (%)
WinSta0\Winlogon (s1) 128 3,6
WinSta0\Disconnect (s1) 64 3,8
WinSta0\Default (s1) 20480 3,0
msswindowstation\mssrestricteddesk (s0) 1024 0,2
__X78B95_89_IW__A8D9S1_42_ID (s0) 1024 0,2
Service-0x0-3e5$\Default (s0) 1024 0,6
Service-0x0-3e4$\Default (s0) 1024 0,3
Service-0x0-3e7$\Default (s0) 1024 2,1
WinSta0\Winlogon (s0) 128 1,9
WinSta0\Disconnect (s0) 64 3.8WinSta0\По умолчанию (s0) 20480 0.0
Все в порядке, использование кучи рабочего стола < 5%
Редактирование 2: Я попытался полностью сбросить свой аккаунт, создав новый, войдя под этим новым и удалив первый (локальные права и файлы), а затем снова войдя под этим удаленным аккаунтом (это доменный аккаунт). Безуспешно.
Кроме того, я обнаружил, что часто возникает ошибка "недостаточно памяти для обработки этой команды". Поискав в интернете, я нашел старый совет по устранению неполадок (настройка ключа реестра для повышения предела стека IRP, что бы это ни было), который ничего не изменил.
решение1
Начнем с того, что SMART умеет лгать.
Далее, я видел это всего несколько раз, и это настоящий кошмар, чтобы полностью диагностировать.
Это может быть вредоносное программное обеспечение на вашем компьютере (или плохой/медленный антивирус?), но, скорее всего, проблема связана с оборудованием.
Во-первых, все ли машины имеют одинаковые характеристики и конструкцию (или достаточно похожи), и есть ли у кого-нибудь еще такая проблема?
Если у них одинаковые машины и проблемы, то, скорее всего, дело в программном обеспечении.
Если нет, то вот несколько этапов, которые я бы порекомендовал... Можете смело пропускать любой из них, если вы уже пробовали.
- Попробуйте перезагрузить операционную систему (если это сработает, значит, проблема была в плохом программном обеспечении)
- Замените жесткий диск (если он работает, значит, жесткий диск был неисправен)
Если у вас все еще есть проблемы, это означает, что наиболее вероятной причиной является плохой I/O или аналогичный чип на вашей материнской плате. Хотя самым безопасным вариантом будет купить новую материнскую плату, возможно, удастся обойти проблемы, купив RAID-адаптер.
решение2
Убедитесь, что папка TEMP существует. В командной строке введитенабори нажмите Enter. Вы увидите все переменные среды. Среди них вы должны увидетьТЕМП=и папку. Убедитесь, что папка существует и в нее можно записывать.
решение3
Отвечая на свой собственный вопрос: у меня больше нет доступа к этому компьютеру, но все проблемы были решены установкой Windows 64 бит. После нескольких дополнительных запросов в Google, без возможности устранения неполадок (так как я не собирался переустанавливать 32-битную версию Win просто для подтверждения), я почти уверен, что моя проблема была не в жестком диске, а в памяти...
Проблема заключалась в том, что когда приложения регистрировали исключение при сбое, оно обычно выглядело так:Недостаточно места для хранения для обработки этой команды.
Для меня это означаетНедостаточно места для обработки этой команды., но на самом деле это перевод сообщения об ошибке Windows на es-ESНедостаточно памяти для завершения операции.. По моему мнению, это очень вводящий в заблуждение перевод (учитывая испанское словомемориаозначает именноПамять, они могли бы использовать его), но я не являюсь носителем английского или испанского языка, поэтому я оставлю Microsoft преимущество сомнения. Хотя это привело меня к неправильному пониманию проблемы.
Я думаю, проблема была в том, что Windows больше не могла выделять приложениям достаточное количество страниц, и/или страницы памяти, выделенные для приложений, были уже слишком фрагментированы для того, чтобы приложения могли их использовать.
В любом случае, я думаю, это произошло просто из-за того, что разработка .net слишком сложна для 32-битной Windows.