Что может вызывать утечку SVCHost ручками?
У меня есть проблема, которая в последнее время вызывает у меня всякое горе. SVCHost, похоже, пропускает ресурсы по всему магазину.
Это запуск SVCHost с аргументами "-k netsvcs".
На данный момент он находится на 5700 используемых ручках. До того, как я перезагрузил машину, она сидела примерно на 33 000 ручек! Это большее число вызывает у меня большие проблемы, так как мое программное обеспечение не может получить необходимые ему дескрипторы (программа пытается создать около 2000 дескрипторов).
Я в полном недоумении относительно того, что идет не так. Если бы кто-нибудь мог помочь мне остановить это, это было бы очень ценно.
Я работаю на XP с SP3.
Изменить: я отследил эту проблему до системы WMI. Я не уверен, почему или как проблема возникала. В основном я использовал "sc change", чтобы переместить его в свой собственный процесс, и вдруг все кажется в порядке. Я не совсем уверен, что происходит...
3 ответа
На всякий случай, если кому-то интересно, я обнаружил, что у меня была небольшая ошибка в каком-то WMI с использованием кода. Системе не удалось освободить объект WMI. Как только код был изменен, проблема исчезла.
Увы, мне никогда не приходило в голову, что утечка в МОЕМ коде вызовет утечку в svchost:(
Теперь не давайте мне начать с утечки памяти в невыгружаемом пуле, коллега, и я только что обнаружил в "Диспетчере безопасности Dell Control Point":(
Попробуйте запустить Process Explorer из SysInternals, чтобы увидеть, что происходит в процессе svchost, который вызывает проблему.
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Вы используете локальный сервер MySQL, XAMPP, WAMPP или около того? Если ваш ответ да, то это ваша проблема. В MySQL, если у вас есть движок InnoDB, он принесет более 30000 дескрипторов.