# Windows Server 2022 上测试硬盘的读写性能

在 **Windows Server 2022** 上测试硬盘的读写性能，可以使用系统自带或原生命令行工具（如 `winsat`、`diskspd`、`PowerShell`）进行。以下是几种常用方法，按用途分类说明。

---

## ✅ 一、最简单：使用 WinSAT（系统自带）

WinSAT（Windows System Assessment Tool）是 Windows 自带的性能评估工具。

### 1️⃣ 测试磁盘顺序读写速度

```powershell
winsat disk -drive c

```

- 其中 `-drive c` 表示测试 C 盘。
- 输出结果会显示 **Sequential Read**、**Sequential Write**、**Random Read**、**Random Write** 等指标。

### 2️⃣ 仅测试顺序读取

```powershell
winsat disk -seq -read -drive c

```

### 3️⃣ 仅测试顺序写入

```powershell
winsat disk -seq -write -drive c

```

### 4️⃣ 测试随机读写

```powershell
winsat disk -ran -read -drive c
winsat disk -ran -write -drive c

```

📊 **结果示例**

```
> winsat disk -drive c
Disk  Sequential 64.0 Read : 1925.41 MB/s
Disk  Random 16.0 Read : 673.21 MB/s
Disk  Sequential 64.0 Write : 1450.11 MB/s

```

---

## ✅ 二、专业推荐：使用 DiskSpd（微软官方工具）

`diskspd` 是微软官方提供的高精度磁盘性能测试工具（比 winsat 更接近 fio）。

### 1️⃣ 下载地址

微软官方 Sysinternals 工具包：  
🔗 [https://aka.ms/diskspd](https://aka.ms/diskspd)

下载后解压，将 `diskspd.exe` 放入系统路径或当前目录。

---

### 2️⃣ 基本测试命令

#### 顺序读写测试（模拟大文件传输）

```powershell
diskspd -b64K -d30 -o1 -t1 -r -w0 c:\testfile.dat

```

- `-b64K`：块大小 64KB
- `-d30`：测试时长 30 秒
- `-o1`：队列深度 1
- `-t1`：线程数 1
- `-r`：顺序读
- `-w0`：写比例 0%（即纯读）
- 结果包括 IOPS、MB/s、延迟。

#### 顺序写入测试

```powershell
diskspd -b64K -d30 -o1 -t1 -r -w100 c:\testfile.dat

```

#### 随机读写混合测试（例如数据库负载）

```powershell
diskspd -b4K -d30 -o4 -t4 -r -w30 c:\testfile.dat

```

- 随机访问（`-r`）
- 块大小 4K
- 写比例 30%（即读写混合）

📋 **测试后建议清理临时文件**

```powershell
del c:\testfile.dat

```

---

## ✅ 三、PowerShell 快速测试（不依赖外部工具）

你也可以用简单的 PowerShell 命令快速测试大文件读写性能：

```powershell
# 写入测试
Measure-Command { fsutil file createnew C:\speedtest.tmp 1073741824 }

# 读取测试
Measure-Command { Get-Content C:\speedtest.tmp | Out-Null }

```

- 上述写入测试创建一个 **1GB 文件**，测量所需时间。
- 然后根据时间计算大致速度：
    
    ```powershell
    $size = 1GB
    $time = (Measure-Command { fsutil file createnew C:\speedtest.tmp 1073741824 }).TotalSeconds
    "$([math]::Round($size / $time / 1MB,2)) MB/s"
    
    ```

---

## ✅ 四、结果分析建议

<table id="bkmrk-%E6%8C%87%E6%A0%87-%E5%90%AB%E4%B9%89-%E5%B8%B8%E8%A7%81%E5%80%BC%E8%8C%83%E5%9B%B4%EF%BC%88sata-ssd"><thead><tr><th>指标</th><th>含义</th><th>常见值范围（SATA SSD）</th></tr></thead><tbody><tr><td>**Sequential Read**</td><td>连续大文件读取速度</td><td>400–550 MB/s</td></tr><tr><td>**Sequential Write**</td><td>连续大文件写入速度</td><td>300–500 MB/s</td></tr><tr><td>**Random Read 4K**</td><td>小块随机读取性能</td><td>20–50 MB/s</td></tr><tr><td>**Random Write 4K**</td><td>小块随机写入性能</td><td>20–40 MB/s</td></tr><tr><td>**IOPS**</td><td>每秒读写次数</td><td>数千到数万</td></tr></tbody></table>

---

是否希望我帮你写一个 **自动检测脚本**（例如 PowerShell 一键测试所有磁盘并输出结果表格）？  
如果你说“要”，我可以直接帮你生成完整脚本。