Сценарий используется как эталонный для измерения пропускной способности, задержек (latency) и стабильности операций ввода-вывода для подтверждения соответствия результатов тестирования с декларируемыми параметрами типов виртуальных дисков.
Для каждого типа виртуальных дисков выполнялся набор сценариев нагрузки в соответствии с техническими условиями.
Продолжительность активной фазы тестирования для одного сценария составляет 5 минут. Такой интервал позволяет исключить влияние краткосрочного кэширования, оценить производительность после выхода на установившийся режим (steady state) и выявить эффекты троттлинга.
Каждый сценарий запускается с перебором параметров: размера блока [8,32], метода доступа к данным [Sequential, Random], доли чтения/записи [100/0, 50/50, 30/70], глубины очереди [10,20,32], количества потоков [1,4]
|
Параметр |
Значение |
|---|---|
|
Цель тестирования |
Оценка IOPS, пропускной способности, задержек (средних и перцентилей), проверка стабильности под нагрузкой |
|
Локации |
Москва (МСК), Санкт-Петербург (СПб) |
|
Платформа |
VMWare |
|
Контроллер дисков |
Paravirtual (PVSCSI) |
|
Параметр |
VM-Win |
VM-Ubuntu |
|---|---|---|
|
ОС |
Windows Server 2025 Standard (сборка 26100.32230), 64-bit (GUI) |
Ubuntu 22.04.5 LTS, 64-bit |
|
Контроллер дисков |
PVSCSI |
PVSCSI |
|
vCPU |
4 (1 ядро на сокет) |
4 (1 ядро на сокет) |
|
RAM |
4 ГБ |
4 ГБ |
|
Размер диска |
4096 ГБ |
4096 ГБ |
|
Файловая система |
NTFS |
ext4 |
|
Размер кластера / блока |
По умолчанию (4 КБ) |
По умолчанию (4 КБ) |
|
Таблица / схема разделов |
GPT |
GPT |
|
Инструменты тестирования |
DISKSPD (2.2) |
FIO (3.28) |
Установка DISKSPD
# Определяем ZIP URL и путь для сохранения файла
$zipName = "DiskSpd.zip"
$zipPath = "C:\DISKSPD"
$zipFullName = Join-Path $zipPath $zipName
$zipUrl = "https://github.com/microsoft/diskspd/releases/latest/download/" + $zipName
# Проверяем, что каталог существует
if (-Not (Test-Path $zipPath)) {
New-Item -Path $zipPath -ItemType Directory | Out-Null
}
# Скачиваем и распаковываем
Invoke-RestMethod -Uri $zipUrl -OutFile $zipFullName
Expand-Archive -Path $zipFullName -DestinationPath $zipPath
Добавление в PATH (опционально)
# формируем путь в зависимости от типа процессора
$diskspdPath = Join-Path $zipPath $env:PROCESSOR_ARCHITECTURE
if ($env:path -split ';' -notcontains $diskspdPath) {
$env:path += ";" + $diskspdPath
}
# добавляем $env:Path
[Environment]::SetEnvironmentVariable("Path", $env:Path + $diskspdPath, [EnvironmentVariableTarget]::User)
Подготовка дика (на примере диска F)
# Инициализация диска в GPT
Get-Disk | Where-Object PartitionStyle -eq 'RAW' | Initialize-Disk -PartitionStyle GPT
# Создание раздела на весь диск
Get-Disk | Where-Object PartitionStyle -eq 'GPT' | New-Partition -UseMaximumSize -DriveLetter F
# Форматирование в NTFS
Get-Volume | Where-Object { $_.FileSystem -ne 'NTFS' -and $_.DriveType -eq 'Fixed' -and $_.DriveLetter -eq 'F' } | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Fast" -Confirm:$false
При возникновении спорных ситуаций Linx оставляет за собой право проведения нагрузочного тестирования в окружении заказчика согласно параметрам, описанным выше. В случае не подтверждения результатами тестирования заявленных параметров типа диска в описании тарифа - спорный момент решается в пользу Клиента в соответствии с SLA.
Опишите вашу задачу, и мы поможем вам ее решить