2

Я заметил, что когда браузер (протестированный с Firefox и Chrome) долгое время работал, он прекращает подключение сайтов. С помощью диспетчера задач я обнаружил, что количество дескрипторов для процесса браузера составляет 90000+. При выключении счетчик дескрипторов браузера начинает уменьшаться, но в какой-то момент останавливается, и единственный разумный быстрый способ выключить браузер - остановить процесс. Также "Системный" процесс имеет большое количество дескрипторов, которое снижается, когда браузер убит.

Поскольку я могу видеть это явление в двух разных браузерах, это не может быть ошибка в браузере. Есть идеи, что вызывает это и как от этого избавиться?

Я использую Windows XP SP3 и Firefox 4.0.1. Антивирусом является F-Secure Client Security 9.01 build 122. Прокси-сервер не используется, и включение брандмауэра F-Secure, похоже, не имеет никакого эффекта.

Вывод Netstat -nb содержит много строк такого типа:

TCP 127.0.0.1:3682 127.0.0.1:3681 CLOSE_WAIT 4112
[Firefox.exe]

Я подозреваю F-Secure, но теперь я представляю, как он мог это сделать.

3 ответа3

2

TL; DR: я наконец нашел причину этой ошибки в Windows 7 (и, конечно, во всех других версиях Windows). На самом деле речь идет об объектах GDI.

Когда число объектов GDI достигает 10 000, появляется ошибка, и Chrome падает несколько раз после. Теперь я просто удивляюсь, является ли это ошибкой в Chrome или это ошибка плагина / расширения.

Чтобы увидеть объекты GDI в диспетчере задач, нажмите в меню "Показать" → «выбрать столбцы ...» → установите флажок "Объект GDI".


Я столкнулся с такой ошибкой в IE (я думаю, v7 или, возможно, 6) в Windows XP SP3. Я испытал это и с Chrome, но только с Windows 7 Home Premium.

Я не думаю, что антивирус является причиной этого, потому что я получил эту проблему на новом ноутбуке (купленном в прошлом месяце) с установленной на нем официальной Windows 7 Home Premium, и я до сих пор не установил ни одного антивируса .. . (даже установлен и удален!)

Как эта ошибка появилась для меня:

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

Когда я пытался что-то загрузить (аналогичная проблема с открытием новой вкладки), диалоговое окно "Сохранить" не появилось (не хватает дескрипторов GUI?). Браузер казался замороженным, но когда я переместил другое окно поверх Chrome, я мог угадать рамку / границы диалогового окна сохранения, потому что были ошибки обновления. Таким образом, диалоговое окно не отображалось, но все равно было "показано". В конце концов я нажал escape, и диалоговое окно закрылось, и браузер "замерз".

В настоящее время мой браузер Iron (Chrome-подобный браузер на основе Chromium) имеет 31 открытую вкладку, процесс, которому принадлежит большинство дескрипторов, имеет 29203 дескриптора, второй процесс имеет 2667 дескрипторов, затем explorer.exe имеет 1392 дескриптора и т.д. У меня нет проблем с графическим интерфейсом.

Когда у меня возникла эта проблема, у Iron было всего около 7000 дескрипторов, поэтому не имеет смысла думать, что это проблема дескриптора или любая утечка дескриптора, которую браузеры могли бы плохо решить.

Я думаю, что это проблема с Windows .. может быть, система переработки ручек, я не знаю.

Примечание. Когда у меня возникла эта проблема в Windows 7, я запустил диспетчер задач, и он отображается правильно. В Windows XP (с IE), а не на этом ноутбуке, у диспетчера задач тоже была проблема. Я не видел никаких процессов, потому что не отображалась сетка с процессами и столбцами! На самом деле я не мог запустить какую-либо программу на этом компьютере, пока я не закрыл IE и не выпустил все дескрипторы.

В Windows 7 (с проблемой Chrome) ресурсы дескриптора GUI кажутся изолированными, потому что я мог видеть диспетчер задач и запускать любую другую программу без этого голодания / нехватки дескриптора GUI. Проблема обработки графического интерфейса ограничена Iron.

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

2

Я, честно говоря, не верю, что это проблема с Firefox или Chrome напрямую. В настоящее время у меня открыто 1220 вкладок в Chrome и 732 в Firefox, и так было без перезапуска более недели. Могут быть проблемы на нескольких разных фронтах, но выследить, кто является виновником, может быть очень сложно.

Несколько вещей, на которые нужно посмотреть:

  • Максимальное количество соединений, которые может обработать ваш маршрутизатор ... (Я видел домашние маршрутизаторы, которые ограничены активными соединениями 4 КБ, а другие более 250 КБ.) К сожалению, этот предел не всегда хорошо документирован производителем. Возможно, вы также захотите взглянуть на то, что еще создает соединения (т. Е. Работает ли p2p в фоновом режиме?)
  • Ты используешь прокси? (Вирус может выступать в роли прокси-сервера и вызывать аналогичные проблемы) У прокси-программного обеспечения также могут быть такие ограничения, и симптомы могут быть схожими.
  • Сайты, которые вы посещаете, могут быть способствующим фактором. Некоторые сайты работают с использованием нескольких методов, которые в конечном итоге приводят к нескольким соединениям с хостом, чтобы максимизировать пропускную способность к веб-сайту, и / или к нескольким соединениям, чтобы обеспечить двустороннюю связь с сервером. Обновление или повторное подключение к сайту, или даже связывание с javascript (т.е. отключение javascript или использование таких программ, как "noscript") может непреднамеренно привести к тому, что сам сайт попытается установить дополнительные подключения к серверу, и проблема может возрасти в геометрической прогрессии.

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

1

Я отключил все "ненужные" плагины браузера, и проблема ушла. Я не уверен, какой это был.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .