Print Filter Pipeline Host грузит процессор на 100%
Добрый день! Уважаемые читатели, самого популярного IT блога России pyayilistnik.org. Наверняка самой частой проблемой в обыденной жизни системного администратора, выступают принтеры. Это хорошо если у вас как в моей компании, за этим следит отдельный отдел, но зачастую, все проблемы с печатающими устройствами ложатся на плечи системного администратора, который в подавляющем большинстве случаев, как Золушка, должен быть горазд на все руки. В моей организации есть централизованный сервер печати, на котором порядка 250 принтеров и плоттеров. С утра начались жалобы на отправку печати, задания либо отрабатывали минут за 10, либо же вообще нет. Было выявлено на сервере печати, что процесс Print Filter Pipeline Host грузил процессор на 100%. В результате чего, печать в компании была осложнена. Давайте я покажу, что делать в такой ситуации и как этого можно избегать.
Что за процесс Print Filter Pipeline Host
Print Filter Pipeline Host - это процесс, отвечающий за взаимодействие с очередью печати принтеров. За данный процесс отвечает файл printfilterpipelinesvc.exe, который в операционных системах семейства Windows можно найти по пути:
Очень часто, вредоносные программы могут скрываться за этим файлом, удаляя его и подкладывая вирус с названием файла printfilterpipelinesvc.exe, который может нагружать процессор, например, при майнинге Dash. Как я и писал выше, у меня, очень сильно стала запаздывать печать на большинстве принтеров, а на некоторых она вообще прекратилась. В диспетчере задач, на принт-сервере, я обнаружил процесс Print Filter Pipeline Host, нагружающий процессор и память, на 97-100%.
Мы уже с вами были в ситуации, когда какой-либо процесс, кушал все ресурсы системы. Такое может быть при IIS, или недавний пример с iastordatasvc.
Как снизить нагрузку на процессор, от Print Filter Pipeline Host
Давайте с вами разберем, какие основные причины, такого поведения на вашем сервере:
- У вас забит спуллер, большим количеством заданий, которые не могут обработаться сервером, такое я уже лечил, в ситуации, когда вы видели "Код события 372: сбой при печати документа".
- Вирус. Очень частый случай, когда вы ловите майнера или другую заразу, которая начинает пожирать ваши ресурсы. Приведу пример, у человека был к ноутбуку Asus X200LA, был подключен, через USB принтер. Человек печатал в день на этом принтере, в среднем 5-6 листочков, но его CPU на ноутбуке, был загружен printfilterpipelinesvc.exe на 50-60 процентов, был вирус.
- Проблема с драйвером, на отдельно взятом принтере, где идут конфликты, между устройствами, и необходимо делать изоляцию драйверов.
- Переустановить драйвера на принтер, как в случае с кодом исключения 0xc0000005
Если с изоляцией драйверов и лечением вирусов все понятно, то я подробнее остановлюсь на моменте, как очистить зависшие задания в спуллере, вашего сервера печати или локального компьютера.
Есть Spooler SubSystem App - это процесс, который помогает пользователю управлять своими системами печати. Всякий раз, когда программа отправляет документ на принтер, приложение подсистемы спулера добавляет его в очередь печати. Служба диспетчера очереди печати сохраняет эти задания печати в памяти и отправляет их на принтер один за другим, когда принтер доступен.
В нормальных ситуациях весь процесс протекает как обычно и не должен использовать большое количество ресурсом вашего компьютера, роль сервера печати, очень часто совмещают с ролью DHCP или контроллером домена, так как она не грузит сервер. При печати они будут использовать только некоторые ресурсы ЦП, и это приемлемо. Однако в других случаях, процесс spoolsv.exe может быть источником значительного использования ресурсов ЦП. Это может произойти, если в системе печати Windows возникла проблема.
Напоминаю, что процесс спуллера, складывает задания на печать в расположение:
Именно из-за огромного количества заданий, в виде файлов с расширением SHD и SPL, которые не ушли на печать, вы можете получить ситуацию, когда Print Filter Pipeline Host, загрузит CPU на 100%.
Сам процесс очистки папки спуллер, очень простой:
- Вы останавливаете службу печати, в противном случае при попытке удалить файлы SHD и SPL, вы получите предупреждение, что они заблокированы.
- Затем удалите содержимое папки C:\Windows\System32\spool\PRINTERS
- Включите службу печати
Для лентяев я подготовил bat файл, который вы можете запустить от имени администратора и он выполнит все этапы очистки папки spooler. Содержимое bat файла:
echo Stopping print spooler.
echo.
net stop spooler
echo Erasing Temporary Junk Printer Documents
echo.
del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*"
echo Starting print spooler.
echo.
net start spooler
Если после очистки, процесс все еще продолжает кушать процессор, просто его убейте из диспетчера задач, он запуститься автоматически заново.
Дополнительные действия
Если у вас до сих пор, процесс Print Filter Pipeline Host загружает процессор на 100%, то попробуйте выполнить дополнительные действия:
- Используйте средство диагностики проблем с принтером (Print Spooler Cleanup Diagnostic Tool)
- Воспользуйтесь, небольшой утилитой Print-Spooler-Repair-Tool, которая автоматически произведет диагностику проблем с печатью
- Произведите чистку реестра и временных файлов, так сказать почистите мусор. Надеюсь, что данная статья оказалась для вас полезной и вы ей поделитесь в социальных сетях, спасибо за внимание. Материал pyatilistnik.org.
Я папку PRITERS чищу, просто зайдя в безопасный режим винды. Потом перезагружаюсь в обычном, и все работает.
Тоже вариант, но в моем случае, это сервер и его нельзя просто так перезагружать.