[Документация Yandex Cloud](../../index.md) > [Yandex Virtual Private Cloud](../index.md) > [Концепции](index.md) > Программно ускоренная сеть

# Программно ускоренная сеть в Virtual Private Cloud

Если ваше приложение нагружает ядра [ВМ](../../glossary/vm.md) на предельных уровнях и одновременно с этим требует передачи больших объемов сетевого трафика, пользовательские и сетевые процессы могут начать борьбу за аппаратные ресурсы. Чтобы исключить такую ситуацию, рекомендуется использовать программно ускоренную сеть.

{% note warning %}

Функциональность доступна только по согласованию с вашим аккаунт-менеджером и предоставляется по запросу в [техническую поддержку](https://kz.center.yandex.cloud/support).

{% endnote %}

## Обычная сеть ВМ {#reg-vm}

В инфраструктуре Yandex Cloud все виртуальные машины работают в [среде виртуализации](../../glossary/virtualization.md) [QEMU-KVM](https://ru.wikipedia.org/wiki/QEMU). *Гипервизор* пропорционально распределяет вычислительную нагрузку по всем процессорным ядрам, которые выделены [виртуальной машине](../../glossary/vm.md).

Вычислительную нагрузку можно логически разделить на три части:

* Пользовательская нагрузка — процессы операционной системы и пользовательские процессы, которые запускаются в ОС пользовательской ВМ.
* Процессы, обеспечивающие работу [сетевых дисков](../../compute/concepts/disk.md).
* Процессы для обработки сетевого трафика ВМ.

Распределение нагрузки по вычислительным ядрам можно представить следующим образом:

![SAN-Disabled](../../_assets/compute/san-disabled.svg)

На схеме видно, что пользовательская нагрузка и обработка сетевого трафика ВМ распределяются по всем вычислительным ядрам, которые выделены виртуальной машине.

Процессы, которые обеспечивают работу [сетевых дисков](../../compute/concepts/disk.md), отделены от пользовательской нагрузки и выполняются на вычислительных ядрах из отдельного пула, сервисных ядрах — на схеме они обозначены как `Core S1`, `Core Sn`.

Для изоляции обработки сетевого трафика ВМ от пользовательской нагрузки можно использовать механизм [программно ускоренной сети](#san) (Software Accelerated Network, SAN).

## Программно ускоренная сеть {#san}

*Программное ускорение сети* происходит за счет переноса процессов обработки сетевого трафика ВМ с вычислительных ядер [виртуальной машины](../../compute/concepts/vm.md) на дополнительные вычислительные ядра, которые выделяются из общего пула ядер, доступных физическому серверу. Для включения функции SAN требуется полная остановка ВМ.

Распределение нагрузки по вычислительным ядрам с включенным SAN можно представить следующим образом:

![SAN-Enabled](../../_assets/compute/san-enabled.svg)

На схеме показано использование двух дополнительных вычислительных ядер — `Core 4` и `Core 5` для обработки сетевого трафика. Количество сервисных вычислительных ядер зависит от количества ядер ВМ:

* Если ВМ размещается на одном NUMA-узле физического сервера, то при включении SAN ей будет выделено 2 дополнительных вычислительных ядра для обработки сетевого трафика (показано на схеме).
* Если ВМ размещается на двух NUMA-узлах физического сервера, то при включении SAN ей будет выделено 4 дополнительных ядра.

{% note info %}

Дополнительные вычислительные ядра, которые выделяются при включении SAN, не будут видны внутри пользовательской ВМ.

SAN нельзя включить для виртуальной машины с [уровнем производительности](../../compute/concepts/performance-levels.md) меньше 100%.

{% endnote %}

Таким образом, с помощью SAN исключается борьба пользовательской и сервисной нагрузок за аппаратные ресурсы, на которых работает ВМ — весь сетевой трафик ВМ обрабатывается отдельно. Благодаря этому снижаются задержки и потери пакетов при передаче трафика, а вычислительные ресурсы ВМ освобождаются для обслуживания пользовательской нагрузки.

[Стоимость](../../compute/pricing.md#software-accelerated-network) дополнительных аппаратных ресурсов зависит от [платформы](../../compute/concepts/vm-platforms.md) и количества ядер ВМ.

Чтобы включить программно ускоренную сеть:

* включите опцию **Программное ускорение сети** при [создании новой ВМ](../../compute/operations/vm-create/create-linux-vm.md) или [измените настройки](../../compute/operations/vm-control/vm-update-resources.md#enable-software-accelerated-network) существующей ВМ;

* включите опцию **Программное ускорение сети** в конфигурации базовой ВМ при [создании группы ВМ](../../compute/operations/instance-groups/create-fixed-group.md) или в [YAML-спецификации](../../compute/concepts/instance-groups/specification.md) укажите для ключа `network_settings.type` значение `SOFTWARE_ACCELERATED`.

Подробнее читайте в разделе [Включить программно ускоренную сеть](../operations/enable-software-accelerated-network.md).

## Рекомендации по использованию программно ускоренной сети {#use-cases}

Программно ускоренную сеть рекомендуется включать для уменьшения времени обработки запросов:

* На ВМ с пользовательскими инсталляциями баз данных при интенсивной работе с [диском](../../compute/concepts/disk.md) и высокой утилизацией CPU (более 70-80%).
* Если внутри ВМ наблюдается большое значение метрики `CPU steal time`.
* В группах узлов кластеров [Yandex Managed Service for Kubernetes](../../managed-kubernetes/concepts/index.md) при работе внутрикластерных балансировщиков L7, например [Istio Ingress Gateways](https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/).

{% note warning %}

Включение SAN не поможет ускорить работу [сетевых дисков](../../compute/concepts/disk.md).

{% endnote %}

## Примеры использования {#examples}

* [Подключение к Object Storage из Virtual Private Cloud](../../tutorials/routing/storage-vpc-access.md)
* [Подключение к Container Registry из Virtual Private Cloud](../../tutorials/routing/vpc-cr-access.md)

#### Полезные ссылки {#see-also}

* [Включить программно ускоренную сеть](../operations/enable-software-accelerated-network.md)