1. 目标与准备
- 目标:在多个主流供应商(如 AWS/GCP/Azure/阿里/本地运营商)在台湾或就近区域分别部署 IPFS 节点并做可比性能测试。- 准备:Linux(Ubuntu 20.04+)实例、SSH 访问、root 或 sudo 权限、测试机器(可在本地或第三方节点)用于发起测试。
- 工具:iperf3, fio, sysbench, curl, wget, go-ipfs(二进制)、时间统计工具(time)。

2. 选择供应商与实例规格
- 建议选择相同或尽量接近的实例类型(vCPU、内存、磁盘类型)。例如 2vCPU/4GB/50GB SSD。- 区域与可用区:优先选择台湾 Region(若无则选择最近的 asia-east 或 asia-northeast),记录 Zone 信息以供比较。
- 网络类型:公有 IP、带宽包或弹性公网 IP,记录购买的上行/下行带宽规格。
3. 快速创建实例(以 Ubuntu 为例的通用步骤)
- 控制台创建:选择镜像 Ubuntu 20.04,指定规格,开启 SSH Key。- 命令行准备(第一次登录后):sudo apt update && sudo apt -y upgrade;sudo apt -y install wget tar curl iperf3 fio sysbench git build-essential。
4. 安装 go-ipfs(IPFS 节点)
- 下载并安装(示例命令,替换版本号):wget https://dist.ipfs.io/go-ipfs/v0.18.0/go-ipfs_v0.18.0_linux-amd64.tar.gz && tar -xzf go-ipfs_*.tar.gz && cd go-ipfs && sudo bash install.sh。- 初始化与启动:ipfs init;ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080";nohup ipfs daemon --enable-gc &>ipfs.log &。
- 确认:ipfs id && curl http://127.0.0.1:8080/ipfs/ -I
5. 防火墙与端口配置
- 打开必要端口:TCP 4001(swarm)、TCP 5001(API,可按需)、TCP 8080(gateway);UDP 4001(swarm 用于 DHT/udp hole punch)。- 使用 ufw 示例:sudo ufw allow 22/tcp && sudo ufw allow 4001:4001/tcp && sudo ufw allow 4001/udp && sudo ufw allow 8080/tcp && sudo ufw enable。
6. 基准测试步骤(网络延迟与带宽)
- 延迟:从测试机 ping -c 20 <云主机公网IP>,记录平均延迟和丢包率。- 带宽:在云主机上运行 iperf3 -s;本地测试机运行 iperf3 -c <公网IP> -P 4 -t 60,记录上/下行吞吐。重复 3 次取平均。
7. 磁盘与 CPU 性能测试
- 磁盘顺序写:fio --name=seq_write --filename=testfile --size=1G --bs=1M --rw=write --direct=1 --numjobs=1 --time_based --runtime=60。记录 IOPS、带宽与延迟。- 随机读写:fio --name=randrw --rw=randrw --bs=4k --size=1G --numjobs=4 --runtime=60。
- CPU:sysbench cpu --cpu-max-prime=20000 run,记录每秒事件与总时间。
8. IPFS 应用层测试(上载/下载/检索)
- 测试文件准备:dd if=/dev/urandom of=1G.bin bs=1M count=1024。- 上载:time ipfs add -q 1G.bin(记录 time 与 CPU、IO 情况);记下返回的 CID。
- 下载:在另一节点或通过 HTTP Gateway 测试 curl -o /dev/null -w "%{time_total}\n" http://<云主机IP>:8080/ipfs/
9. 自动化脚本与数据采集
- 建议编写 bash 脚本统一执行:ping/iperf3/fio/sysbench/ipfs add 和 curl 测试,并输出 CSV。- 指标项:平均延迟、带宽峰值、磁盘吞吐、IPFS add 时延、gateway 获取时延、CPU/内存峰值。
- 可视化:把 CSV 导入 Excel 或 Grafana(Prometheus 节点导出)做对比图。
10. 分析建议与决策要点
- 对比时固定实例规格与测试时间窗口,避免高峰期偏差。- 重点关注:下载延迟(对用户体验敏感)、稳定带宽(长期节点互联)、磁盘类型对 ipfs add 的影响。
- 给出初步选择策略:需要低延迟优先选择地理就近且网络质量好的供应商;需要高吞吐优先选择带宽保证的实例或带宽包。
问答1
问:在台湾没有明确 region 的供应商,是否影响测试有效性? 答:若供应商无台湾 region,请选择地理上最近的 region(如台北邻近的 asia-east/asia-northeast),并备注跨境跃点;同时用 traceroute 确认路由跳数,记录以便解释延迟差异。
问答2
问:IPFS 节点性能主要受哪些因素影响? 答:主要受网络带宽与延迟、磁盘读写性能(尤其是写入/GC)、实例 CPU 与内存配置,以及云厂商的网络隔离/共享带宽策略。


