Чаще всего «слабым звеном» в работе виртуальной машины с Windows на Proxmox является именно дисковая подсистема. Ниже — проверенные советы по её ускорению с помощью программных настроек. Рассматриваем только оптимизацию внутри Proxmox и гостевой ОС. Использование SSD, RAID и аппаратного ускорения — тема для отдельной статьи.
1. Используйте VirtIO везде, где возможно
VirtIO — это драйверы полупрозрачной виртуализации, обеспечивающие высокую производительность. В сравнении с эмулируемыми устройствами:
- VirtIO Disk Controller против IDE — увеличивает скорость последовательной записи в 2 раза.
- VirtIO сетевой интерфейс против Intel E1000 — прирост производительности до 3 раз.
Рекомендуется использовать VirtIO во всех компонентах: диски, сеть, контроллеры.
2. Формат образа жесткого диска: RAW вместо QCOW2
Для максимальной скорости используйте формат RAW.
- RAW — максимальная производительность, прямой доступ к блокам.
- QCOW2 — удобство (снапшоты, сжатие), но небольшие накладные расходы.
Выбор прост: нужна скорость — RAW; нужны снапшоты — QCOW2.
3. Дисковый контроллер: VirtIO SCSI
Выбирайте VirtIO SCSI вместо устаревшего VirtIO Block или IDE.
Как настроить:
- Скачайте
virtio-win.isoс официального сайта. - Подключите ISO как CD/DVD к виртуальной машине.
- Загрузите Windows, установите драйвер Viostor (для дисков).
- После перезагрузки диск будет работать через VirtIO SCSI.
✅ Преимущества VirtIO SCSI: поддержка очередей, многопоточности, TRIM и IO Thread.
4. Настройка виртуального диска в Proxmox
При создании или редактировании диска:
- Тип подключения: SCSI (не VirtIO Block).
- Кэширование: Write Back — если есть ИБП. Увеличивает скорость записи.
- Discard: включить, если диск на SSD — для поддержки TRIM.
- SSD emulation: включить — сообщает Windows, что это SSD (включает оптимизацию дефрагментации).
- IO Thread: ✅ включить — создаёт отдельный поток I/O для каждого контроллера. Особенно эффективно при нескольких дисках.
5. Критически важный момент: swap в Proxmox при большом объёме RAM
Если у вас много оперативной памяти (64 ГБ, 128 ГБ и более), но swap почти полностью заполнен — это не нехватка памяти, а ошибка настройки.
Пример из жизни
У вас:
- RAM: 128 ГБ
- Свободно: 60 ГБ
- Swap: 8 ГБ, загружен на 90–100%
👉 Это означает: система бессмысленно свопит из-за значения vm.swappiness=60 по умолчанию.
Что делать?
Нужно снизить агрессивность свопинга, чтобы система использовала RAM по максимуму, а своп — только как страховку.
✅ Шаг 1: Уменьшить swappiness до 1
sudo sysctl -w vm.swappiness=1
Чтобы настройка сохранилась после перезагрузки:
echo 'vm.swappiness=1' | sudo tee -a /etc/sysctl.conf
✅ Шаг 2: Отключить swap на ходу (безопасно при достаточной RAM)
sudo swapoff -a
Проверьте:
free -h
Swap должен быть 0.
✅ Шаг 3: Отключить swap навсегда (опционально)
Откройте /etc/fstab и закомментируйте строку с swap:
# UUID=xxxx-xxxx none swap sw 0 0
⚠ Почему это важно?
Активный swap:
- Создаёт постоянную нагрузку на диск.
- Конфликтует с IO Thread — особенно на SSD.
- Может вызывать ошибки в логах:
EXT4-fs warning (device sdb1): ext4_end_bio: I/O error
buffer I/O error on device sdb1, logical block 123456
Это особенно критично, если у вас отдельные диски для почты, бэкапов или СУБД.
📌 Когда отключать swap — итог
| Сценарий | Рекомендация |
|---|---|
| 128+ ГБ RAM, ИБП, контроль за памятью | vm.swappiness=1 + swapoff -a |
| Мало RAM (≤16 ГБ) | Оставить swap, swappiness=10 |
| Продакшен, нужна стабильность | Не отключать, только swappiness=1 |
6. Дополнительная оптимизация (рекомендуется)
Добавьте в /etc/sysctl.conf:
# Меньше выгружать кэш в своп
vm.vfs_cache_pressure=50
# Уменьшить агрессивность свопинга
vm.swappiness=1
7. Проверка результата
После настройки проверьте:
free -h # Swap должен быть 0 или почти 0
dmesg | grep -i "I/O error" # Ошибки ext4 должны исчезнуть
iostat -x 2 # Проверьте нагрузку на диск
Вывод
Чтобы выжать максимум из дисковой подсистемы Windows в Proxmox:
- Используйте RAW + VirtIO SCSI.
- Включите Discard, SSD emulation, IO Thread.
- Установите vm.swappiness=1 и отключите swap, если много RAM.
- Проверьте, не грузит ли своп ваш диск — это частая причина ошибок I/O.
Эти шаги дадут ощутимый прирост производительности, особенно при работе с Windows-виртуалками, базами данных и файловыми серверами.
Если знаешь другие способы ускорить диск в Proxmox — делитесь в комментариях!
Комментарии
Пока нет комментариев. Будьте первым!