Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Оптимизация виртуальной машины на KVM для работы с 1С 8.3

Оптимизация виртуальной машины на KVM для работы с 1С 8.3

 

 

 

В данной статье рассматривается процесс оптимизации виртуальной машины (ВМ) с Windows Server 2019 на платформе KVM (Debian 12) для эффективной работы с 1С:Предприятие 8.3. Оптимизация направлена на снижение нагрузки на хост-систему и повышение производительности приложения, особенно в сценариях с интенсивными расчётами, отчётами и многопользовательским режимом.

Проблематика

1С:Предприятие 8.3 является ресурсоёмким приложением, требующим значительных вычислительных мощностей для обработки данных, кэширования и работы с базами. В виртуальной среде избыточное выделение ресурсов ВМ может привести к:

  • Перегрузке хост-системы.
  • Замедлению работы ВМ и приложения.
  • Неэффективному использованию аппаратных ресурсов.

В рассматриваемом случае ВМ занимала все 28 ядер хоста, что вызывало системные сбои. Хост: Debian 12 с KVM, 28 ядер Intel Xeon E5-2680 v4, 64 GB RAM. ВМ: Windows Server 2019, 28 vCPU, 16 GB RAM, диск QCOW2. Цель оптимизации — снижение нагрузки до приемлемого уровня при сохранении функциональности.

Шаг 1: Подготовка и диагностика

Перед внесением изменений необходимо провести диагностику ресурсов хоста и ВМ.

Диагностика хоста

Определим архитектуру процессора:

lscpu

Ключевые параметры:

  • Количество ядер: 28 (0-27).
  • Сокетов: 1.
  • NUMA-узлов: 1.
  • Гиперпоточность: 14 ядер × 2 потока.
  • Модель: Intel Xeon E5-2680 v4 @ 2.40GHz.

Эти данные необходимы для корректной настройки CPU affinity.

Диагностика ВМ

Проверим статус и текущие ресурсы:

virsh list --all
virsh dominfo win2019

Пример вывода:

ID: 1
Имя: win2019
Состояние: работает
CPU: 28
Макс.память: 16777216 KiB

При необходимости выключим ВМ:

sudo virsh shutdown win2019

Диагностика диска и сети

virsh domblklist win2019
virsh domiflist win2019

Вывод:

  • Диск: vda на QCOW2 — требует оптимизации кэша.
  • Сеть: vnet4, bridge br0, модель virtio — соответствует требованиям.

Шаг 2: Оптимизация CPU

Основная проблема — избыточное количество vCPU. Уменьшим до 12 для баланса нагрузки.

Изменение количества vCPU

Редактируем конфигурационный файл ВМ:

sudo virsh edit win2019

Найдём строку:

<vcpu placement='static'>28</vcpu>

Заменим на:

<vcpu placement='static'>12</vcpu>

Также изменим модель CPU:

<cpu mode='host-model' check='partial'/>

Применяем изменения:

sudo virsh define /etc/libvirt/qemu/win2019.xml
sudo virsh start win2019
virsh dominfo win2019

Результат: CPU: 12.

Настройка CPU affinity

Привяжем vCPU к физическим ядрам для стабильности:

sudo virsh edit win2019

После <vcpu> добавим:

<cputune>
  <vcpupin vcpu='0' cpuset='0'/>
  <vcpupin vcpu='1' cpuset='1'/>
  <vcpupin vcpu='2' cpuset='2'/>
  <vcpupin vcpu='3' cpuset='3'/>
  <vcpupin vcpu='4' cpuset='4'/>
  <vcpupin vcpu='5' cpuset='5'/>
  <vcpupin vcpu='6' cpuset='6'/>
  <vcpupin vcpu='7' cpuset='7'/>
  <vcpupin vcpu='8' cpuset='8'/>
  <vcpupin vcpu='9' cpuset='9'/>
  <vcpupin vcpu='10' cpuset='10'/>
  <vcpupin vcpu='11' cpuset='11'/>
</cputune>

Перезагрузим ВМ:

sudo virsh reboot win2019

Шаг 3: Оптимизация памяти

Увеличим объём памяти до 24 GB:

sudo virsh setmem win2019 24576MB --config
sudo virsh reboot win2019
virsh dominfo win2019

Результат: Макс.память ~24 GB.

Шаг 4: Оптимизация диска

Настроим кэширование и I/O:

sudo virsh edit win2019

В блоке <disk>:

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2' cache='directsync' io='native'/>
  <source file='/home/kvm/vhdd/win2019.qcow2'/>
  <target dev='vda' bus='virtio'/>
</disk>

Перезагрузим ВМ.

Шаг 5: Оптимизация сети

Проверим и настроим сеть:

virsh domiflist win2019

Убедимся в использовании модели virtio:

<interface type='network'>
  <model type='virtio'/>
</interface>

Тестирование и мониторинг

Запустим ВМ:

sudo virsh start win2019

Тестирование в 1С

  • Выполните расчёты или отчёты в 1С.
  • Мониторьте ресурсы в Диспетчере задач Windows и на хосте (top).

Дополнительные рекомендации

  • Для динамического изменения CPU: sudo virsh setvcpus win2019 16 --live.
  • В Windows: Выполните дефрагментацию, отключите антивирус.
  • В 1С: Используйте PostgreSQL, активируйте кэширование.
  • Для больших баз добавьте дополнительный диск.

Заключение

Оптимизация позволила снизить нагрузку на систему и повысить производительность 1С. Рекомендуется мониторить ресурсы и корректировать настройки в зависимости от нагрузки.

 

08 сентября 2025, 22:38    Александр Linux 0    0 0

 

 

 

 



Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.