Назад | Перейти на главную страницу

savscand на RHEL5, вызывая очень высокую нагрузку на ЦП во время сканирования загружаемого файла при доступе

Итак, у нас запущена установка java-tomcat. Во время загрузки на платформу большого файла (например, 31 МБ pdf) серверный процесс Sophos savscand (оба они - всегда работают 2, это стандартно, очевидно) в нашей системе RHEL5.5 останавливает всю систему и потребляет 700% + загрузка процессора.

Пока процессы savscand не будут убиты, система будет перегружена процессором.

Без дополнительной информации вам понадобится отправить запрос в службу поддержки Sophos. Служба поддержки Red Hat могла бы указать на некоторые возможные причины, но я подозреваю, что после просмотра отчета SOSReport они будут указывать на Sophos. Учитывая предоставленную вами информацию, я подозреваю, что где-то происходит состояние гонки.

Я понимаю, что это старый вопрос, но буквально на прошлой неделе возникла аналогичная проблема с savscand после того, как Rackspace выполнило обновление на сервере под управлением Centos 6.7. При загрузке файлов XML на сервер с другого сервера и, более того, при чтении XML, savscand может вызвать скачок ЦП. Одно конкретное регулярное ежедневное обновление, которое раньше обрабатывалось от 30 минут до часа, теперь занимало более 24 часов. Через неделю все данные устарели на пару дней, и эти XML-файлы обрабатывались круглосуточно. Я не мог параллельно импортировать, так как порядок импорта был критичным, поэтому я временно взломал грязный маленький экранный демон, чтобы все двигалось. Я не уверен, насколько эффективным может быть сканирование с таким уменьшенным приоритетом, но оно определенно повысило производительность импорта файлов XML. Вероятно, есть более чистый и безопасный способ сделать это, но он работал у меня, пока мы готовимся к переходу на другой сервер:

screen

while true; do pgrep -f "savscand" | xargs -I %  ps h -o pid,pcpu -p %|grep -oP "[ ]*[0-9]+(?=[ ]+([4-9][0-9]|[1-9][0-9][0-9]).)"|xargs -r -I {} sh -c 'pgrep -f '"'savscand'"' | xargs -I %  ps h -o pid,pcpu,ni -p %|grep {};renice +1 {};echo demoted {};date;'; sleep 20;done

Если вы не знакомы с экраном, нажмите Ctrl + A, затем нажмите D, чтобы отсоединить его, и пусть это будет работать в фоновом режиме на неопределенное время. screen -r вернет вас, чтобы позже прервать его.