我正在尝试调整 vsftpd 以实现最佳性能:
- 我只有一个或两个客户端连接到服务器。
- 文件大小在~15MB至1GB之间。
- 典型的传输批次代表1到2GB之间的数据。
为了测试目的,我在两侧都使用了 tmpfs(从而消除了任何磁盘瓶颈),并且只有一个 1GB 的文件。
当禁用 SSL 时,性能良好,传输速率约为 120MB/s(达到千兆网络的极限)。
仅为控制流量(而不是数据流量)启用 SSL 时,性能会下降到约 112MB/s,但这仍在可接受的范围内。
然而,当数据流启用SSL后,传输速度急剧下降:
- 使用 3DES 和 SHA 为 6.7MB/s(
ssl_ciphers=DES-CBC3-SHA
在 vsftpd.conf 中) - 使用 DES 和 SHA 时为 16MB/s(
ssl_ciphers=DES-CBC-SHA
)
我没有测试其他密码,但从传输过程中的 CPU 使用率来看,vsftpd 似乎每个客户端仅使用一个 CPU/核心。虽然这可以适用于拥有数百个客户端的大型 FTP 站点,但我想避免这种行为并在服务器上使用更多资源。
顺便说一句,如果您对其他 openssl 密码有任何想法......
答案1
我刚刚读http://unhandledexpression.com/2013/01/25/5-easy-tips-to-accelerate-ssl/建议运行openssl speed
。根据结果,您可能需要选择另一种算法。遗憾的是,我不知道如何将一个加密任务的负载分散到多个核心上。