我正在 Linux 服务器(内核 2.6.37、16 核、32G RAM)上的 2 个文件系统之间复制大文件(3 x 30G),但性能很差。我怀疑缓冲区缓存的使用正在扼杀 I/O 性能。
为了尝试缩小问题的范围,我直接在 SAS 磁盘上使用 fio 来监控性能。
这是 2 次 fio 运行的输出(第一次直接=1,第二次直接=0):
配置:
[test]
rw=write
blocksize=32k
size=20G
filename=/dev/sda
# direct=1
Run Code Online (Sandbox Code Playgroud)
运行 1:
test: (g=0): rw=write, bs=32K-32K/32K-32K, ioengine=sync, iodepth=1
Starting 1 process
Jobs: 1 (f=1): [W] [100.0% done] [0K/205M /s] [0/6K iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=4667
write: io=20,480MB, bw=199MB/s, iops=6,381, runt=102698msec
clat (usec): min=104, max=13,388, avg=152.06, stdev=72.43
bw (KB/s) : min=192448, max=213824, per=100.01%, avg=204232.82, stdev=4084.67
cpu : …
Run Code Online (Sandbox Code Playgroud)