diff --git a/data/phase15_16_test_report.md b/data/phase15_16_test_report.md new file mode 100644 index 0000000..3ae71c5 --- /dev/null +++ b/data/phase15_16_test_report.md @@ -0,0 +1,67 @@ +# Phase 15-16 测试报告 + +**测试时间**:2026-06-17 21:11-21:15 +**测试工具**:OpenSSH rsync/SCP + +## rsync 测试结果 ⭐⭐⭐⭐⭐ + +| 文件大小 | 传输时间 | 速度 | MD5 校验 | 结果 | +|---------|---------|------|---------|------| +| 10MB | 10秒 | 780 KB/s | ✅ 一致 | ✅ 成功 | +| 20MB | 24秒 | 780 KB/s | ✅ 一致 | ✅ 成功 | +| 50MB | 64秒 | 782 KB/s | ✅ 一致 | ✅ 成功 | + +**结论**:rsync 大文件传输完全成功(10-50MB) + +**Window Control 统计**: +- 20MB 传输:1090 次 WINDOW_DECREASED +- 50MB 传输:约 2725 次(估算) + +## SCP legacy 测试结果 ⚠️⚠️⚠️⚠️⚠️ + +| 文件大小 | 应上传 | 实际上传 | MD5 校验 | 结果 | +|---------|--------|---------|---------|------| +| 20MB | 20MB | 416KB | ❌ 不一致 | ❌ 失败 | + +**根本原因**:SSH server timeout机制 +- 强制关闭 stdin:5090ms 后发送 EOF +- SCP child process 被中断 +- 文件传输不完整 + +**日志关键信息**: +``` +[13:15:04] ⭐⭐⭐⭐⭐ Forcing stdin close after 509 iterations (5090 ms) - sending EOF to rsync +[13:15:04] Child exited after stdout/stderr EOF (status: ExitStatus(unix_wait_status(0))) +``` + +## 性能分析 ⚠️⚠️⚠️⚠️⚠️ + +**传输速度对比**: +- AGENTS.md 记录:21-36 MB/s +- 实际测试:780 KB/s +- **性能差异**:约 30倍差距 + +**可能原因**: +1. Window size 太小(2MB) +2. sshbuf zero-copy 性能未优化 +3. AES-CTR encryption overhead +4. poll() iteration overhead(1000次迭代) + +## 下一步计划 ⭐⭐⭐⭐⭐ + +**Phase 16.1:修复 SCP timeout**(优先) +- 增加 stdin timeout 至 30秒 +- 或针对 SCP/rsync 禁用 timeout + +**Phase 16.2:性能优化** +- Window size 动态调整(根据传输速度) +- sshbuf 性能测试 +- 减少 poll iteration overhead + +**Phase 17:SCP over SFTP subsystem** +- SCP subsystem support +- SCP -3 选项支持(recursive copy) + +--- + +**最后更新**:2026-06-17 21:15