1.
准备与环境说明
1) 测试对象:美国高防云服务器(确保带宽与防护策略知情)。
2) 软件与工具:安装 fio、gdisk/parted、lsblk、hdparm、iostat (sysstat)、vmstat、smartctl,命令示例:
apt-get install fio gdisk sysstat smartmontools。
3) 权限与快照:测试前备份或创建快照,获取root权限,确认云厂商不会在测试期限制IO或流量。
2.
分区创建(确保4T正确识别与对齐)
1) 使用GPT分区表:
gdisk /dev/sdX,创建新分区,起始扇区建议2048(1MiB对齐)以避免性能下降。
2) 确认分区大小:创建4T分区时输入容量或扇区数;用
parted /dev/sdX mklabel gpt mkpart primary 1MiB 4096GiB。
3) 刷新内核分区表:
partprobe /dev/sdX,并用
lsblk -f 确认。
3.
文件系统选择与格式化
1) 推荐XFS或ext4:XFS对大分区与并发写入更友好,命令:
mkfs.xfs -f -L data /dev/sdX1。
2) mkfs选项:若使用ext4,可指定inode比例与预留,
mkfs.ext4 -F -m 1 /dev/sdX1。
3) 挂载参数:在 /etc/fstab 中添加
/dev/sdX1 /data xfs defaults,noatime,nodiratime,attr2 0 0,并执行
mount -a。
4.
基础信息收集(基线数据)
1) 磁盘信息:
hdparm -I /dev/sdX、
smartctl -a /dev/sdX。
2) IO统计:启动监控进程
iostat -x 1 > iostat.log &、
vmstat 1 > vmstat.log &,记录空闲与缓存状况。
3) 网络防护说明:确认高防策略是否影响流量清洗导致磁盘延迟或带宽抖动,记录防护规则时间窗口。
5.
fio测试用例设计(关键)
1) 测试类型:顺序读写(rw=read、rw=write、rw=readwrite)与随机IO(rw=randread、randwrite)。
2) 区块大小与队列深度:常见组合:4k(小IO)、64k(混合)、1M(大带宽)。队列深度(iodepth)建议 1、8、32、64 做矩阵测试。
3) fio示例命令:
fio --name=seqwrite --filename=/data/testfile --size=10G --rw=write --bs=1M --iodepth=32 --direct=1 --ioengine=libaio --numjobs=1 --runtime=300 --time_based --group_reporting。
6.
执行测试的详细步骤
1) 清理缓存:每次测试前执行
sync; echo 3 > /proc/sys/vm/drop_caches。
2) 预热:先运行每种测试 60-120s 预热(不计入最终结果),确保磁盘进入稳态。
3) 正式运行并记录:每组参数运行 300s,重复 3 次取平均,保存 fio 输出和 iostat、vmstat 同步日志。
7.
注意直接IO与缓存影响
1) 使用
--direct=1 禁用页缓存以获得真实磁盘吞吐(除非测试缓存层)。
2) 若要测试文件系统缓存性能,去掉 direct 选项并设置合适的文件大小(小于可用内存)。
3) 对云盘还需注意云提供商的缓存策略(本地缓存、写回写直写),记录实例类型与磁盘类型(本地SSD、云盘、SSD云盘)。
8.
调优建议(针对4T大分区)
1) 调整IO调度器:对 SSD 建议使用 noop 或 mq-deadline:
echo noop > /sys/block/sdX/queue/scheduler。
2) 文件系统参数:XFS 可调整 logbsize/allocsize,ext4 可调整 commit=参数与stride。
3) 内核参数:增加文件句柄和异步IO限制,如
sysctl -w vm.dirty_ratio=15 vm.dirty_background_ratio=5,并持久化到 /etc/sysctl.conf。
9.
结果分析与常见判读方法
1) 吞吐与IOPS计算:fio 输出中看 bandwidth(MB/s)与 iops。若顺序1M读写低于标称,检查队列深度与云商QoS。
2) 延迟分布:查看 fio 的 lat (median/99th) 与 iostat 的 await。高延迟提示防护或限速、热数据写放大。
3) 对比分区对齐与不同文件系统:若未对齐会有明显随机小IO性能降级,记录对齐后/前的结果差异。
10.
问:4T分区本身会直接降低IO吞吐吗?
答:通常分区大小本身不会直接降低吞吐,但大分区更容易产生大范围的元数据与碎片、以及更长的扫描时间。关键影响来自是否使用GPT并正确对齐、文件系统选择(XFS对大分区更优)和云厂商的底层卷实现(如超售、QoS)。因此正确对齐与合适的FS能避免性能下降。
11.
问:在美国高防服务器上做测试需要注意哪些特殊项?
答:注意高防策略可能对网络流量有清洗延迟,但对磁盘IO直接影响少;要确认云厂商是否对IO有峰值限制(云盘IOPS、带宽上限)并在测试窗口与运维沟通,避免触发防护误报或限速。记录实例规格与高防规则以便复现。
12.
问:如果测试结果不理想,优先排查哪些项?
答:优先检查分区对齐、IO调度器、文件系统是否合适、是否用了direct IO、云盘类型与IOPS配额、以及是否有后台快照或防护扫描。按步骤调整并重复 fio 基准测试以验证改动效果。
来源:性能测试美国高防服务器支持4t分区对IO吞吐的影响报告