f1f27ed3

Производительность


Основная идея повышения производительности состоит в исключении необязательных и/или многократных проверок. Например, при проверке по требованию происходит обращение к объектам файловой системы, что при прочих равных должно вызывать также и проверку при доступе. Однако, вполне понятно, что такая двойная проверка является излишней и поэтому практически во всех антивирусных продуктах объекты, сканируемые модулем проверки по требованию, никаким другими модулями не сканируются.

Если нет смысла проверять один и тот же объект два раза подряд (что очевидно), то возникает вопрос: каков допустимый интервал между двумя последовательными проверками одного и того же объекта? Ответ лежит на поверхности: до тех пор, пока состояние системы с точки зрения проверки этого объекта не изменилось. Важными параметрами в данном случае будут:

  • Состояние объекта — если объект изменился, существует вероятность, что это произошло под влиянием вируса, и значит объект подлежит повторной проверке
  • Состояние антивирусного средства — если изменилась версия антивирусных баз, антивирусного ядра или самого антивируса, существует вероятность, что потенциальный вирус внутри объекта, не обнаруженный ранее, будет обнаружен теперь и значит объект должен быть перепроверен

Отследить изменения в антивирусе - задача тривиальная. Соответственно стоит вопрос об отслеживании изменений в объектах и хранении данных об условиях предыдущей проверки. Здесь как раз и используется технология расчета и анализа контрольных сумм, которая обеспечивает две характеристики:

  • Надежное определение неизменности объекта — вероятность того, что объект будет изменен, но его контрольная сумма останется такой же, крайне мала. С аналитической же точки зрения, задача поиска модификации объекта, не меняющей его контрольную сумму, для большинства алгоритмов вычисления контрольных сумм является NP-полной, следовательно не может быть эффективно решена вирусом при заражении, и значит факт заражения отразится на контрольной сумме
  • Высокая скорость обработки файла — чтобы имело смысл подменять полноценную проверку на наличие вирусов проверкой на наличие изменений, необходим значительный выигрыш в скорости.

    Что касается производительности, то и в этом случае антивирусное ПО для серверов использует практически те же технологии, что и АПО для рабочих станций. Но не только.

    В отличие от рабочих станций, сервера нередко могут работать на многопроцессорных платформах. С одной стороны этот факт не должен вызывать проблем в работе АПО, т. е. оказывать влияние на тестирование надежности. С другой стороны, антивирус вполне может использовать многопроцессорную архитектуру для повышения скорости проверки объектов.

    Пример. В Антивирусе Касперского для Windows File Servers предусмотрена возможность использования параллельно нескольких антивирусных ядер. В связи с этим основная служба антивируса разделена на две составляющие:

    • управляющую часть, которая отвечает за взаимодействие с драйвером файловой системы, планировщиком задач, интерфейсом и другими компонентами антивируса
    • сканирующую часть, которая загружается отдельно для каждого из используемых в системе процессоров и выполняет проверку передаваемых управляющей частью объектов

    Соответственно, количество сканирующих ядер, загружаемых в память компьютера. равно количеству процессоров. При этом процессоры Intel, использующие технологию HyperThreading, считаются эквивалентными паре процессоров.




    Основная идея повышения производительности состоит в исключении необязательных и/или многократных проверок. Например, при проверке по требованию происходит обращение к объектам файловой системы, что при прочих равных должно вызывать также и проверку при доступе. Однако, вполне понятно, что такая двойная проверка является излишней и поэтому практически во всех антивирусных продуктах объекты, сканируемые модулем проверки по требованию, никаким другими модулями не сканируются.

    Если нет смысла проверять один и тот же объект два раза подряд (что очевидно), то возникает вопрос: каков допустимый интервал между двумя последовательными проверками одного и того же объекта? Ответ лежит на поверхности: до тех пор, пока состояние системы с точки зрения проверки этого объекта не изменилось. Важными параметрами в данном случае будут:

    • Состояние объекта — если объект изменился, существует вероятность, что это произошло под влиянием вируса, и значит объект подлежит повторной проверке
    • Состояние антивирусного средства — если изменилась версия антивирусных баз, антивирусного ядра или самого антивируса, существует вероятность, что потенциальный вирус внутри объекта, не обнаруженный ранее, будет обнаружен теперь и значит объект должен быть перепроверен

    Отследить изменения в антивирусе - задача тривиальная. Соответственно стоит вопрос об отслеживании изменений в объектах и хранении данных об условиях предыдущей проверки. Здесь как раз и используется технология расчета и анализа контрольных сумм, которая обеспечивает две характеристики:

    • Надежное определение неизменности объекта — вероятность того, что объект будет изменен, но его контрольная сумма останется такой же, крайне мала. С аналитической же точки зрения, задача поиска модификации объекта, не меняющей его контрольную сумму, для большинства алгоритмов вычисления контрольных сумм является NP-полной, следовательно не может быть эффективно решена вирусом при заражении, и значит факт заражения отразится на контрольной сумме
    • Высокая скорость обработки файла — чтобы имело смысл подменять полноценную проверку на наличие вирусов проверкой на наличие изменений, необходим значительный выигрыш в скорости.


      Что касается производительности, то и в этом случае антивирусное ПО для серверов использует практически те же технологии, что и АПО для рабочих станций. Но не только.

      В отличие от рабочих станций, сервера нередко могут работать на многопроцессорных платформах. С одной стороны этот факт не должен вызывать проблем в работе АПО, т. е. оказывать влияние на тестирование надежности. С другой стороны, антивирус вполне может использовать многопроцессорную архитектуру для повышения скорости проверки объектов.

      Пример. В Антивирусе Касперского для Windows File Servers предусмотрена возможность использования параллельно нескольких антивирусных ядер. В связи с этим основная служба антивируса разделена на две составляющие:

      • управляющую часть, которая отвечает за взаимодействие с драйвером файловой системы, планировщиком задач, интерфейсом и другими компонентами антивируса
      • сканирующую часть, которая загружается отдельно для каждого из используемых в системе процессоров и выполняет проверку передаваемых управляющей частью объектов

      Соответственно, количество сканирующих ядер, загружаемых в память компьютера. равно количеству процессоров. При этом процессоры Intel, использующие технологию HyperThreading, считаются эквивалентными паре процессоров.



      Содержание раздела