Test Rig
Baseline hardware used for the published numbers. Update this with your own lab specs for transparency.
Hardware
- CPU: i5-12600K
- Memory: 32 GB DDR4
- Disk: PCIe 4.0 NVMe SSD
- NIC: 1 Gbps LAN
- OS: Windows 11 Pro 23H2
Software
- SLightSFTP v1.1.0 Desktop mode
- Clients: WinSCP 6.3.3, FileZilla 3.66
- Antivirus: Windows Defender (default)
- Idle timeout: 5 minutes (default)
- Network: 1 Gbps full-duplex switched LAN
Sample Results
| Scenario | Throughput | Notes |
|---|---|---|
| Single SFTP upload (1 GB) | 410 Mbps | Disk-bound; CPU ~18% |
| 4x parallel SFTP uploads (1 GB each) | 720 Mbps agg. | CPU ~42%, stable RAM |
| FTP download burst (1000 x 1 MB) | 560 Mbps | Control channel stable |
| Authentication throughput | 800 logins/min | Logging enabled |
| Latency: single file stat | ~12 ms p50 | Local LAN; idle cache |
Replace these numbers with your own tests to reflect your environment.
Methodology
Parameters
- No compression; SFTP using AES-256
- Default idle timeout kept
- Passive FTP ports predefined at firewall
- Logs retained; CSV exported post-run
- Stats captured with Windows Resource Monitor
Steps
- Warm disk cache with a pilot transfer
- Run scripted uploads/downloads
- Capture CPU, RAM, disk, network stats
- Export activity logs for audit
- Repeat with AV exclusion to compare
Tuning Checklist
Server
- Exclude data directory from real-time AV
- Use SSD/NVMe for virtual path storage
- Keep ports static; avoid conflicts
- Monitor idle timeout effectiveness
- Pin process priority to Normal (default)
Network
- Prefer wired over Wi-Fi
- Set passive FTP range and open in firewall
- Co-locate clients and server on same switch for tests
- Avoid VPNs for baseline measurements
Clients
- Use latest WinSCP/FileZilla versions
- Parallelize uploads for better throughput
- Use key-based auth to cut login overhead
- Disable client-side speed limits
Command Examples
psftp user@host -b script.txtfor scripted SFTP testscurl ftp://user:pass@host:21/file -o NULfor FTP download checkMeasure-Command { ./transfer.ps1 }to time runs