CentOS SFTP性能瓶颈解决方法
noatime挂载选项(如mount -o noatime /dev/sda1 /data),避免系统频繁记录文件访问时间,减少磁盘I/O操作,提升文件系统性能。/etc/sysctl.conf文件,开启TCP快速回收(net.ipv4.tcp_tw_reuse = 1)、复用(net.ipv4.tcp_tw_recycle = 1)等功能,优化TCP连接处理效率(需根据系统版本调整,避免兼容性问题)。/etc/ssh/sshd_config文件,将Subsystem改为internal-sftp(Subsystem sftp internal-sftp),避免调用外部sftp-server进程,减少资源消耗。Match指令限制SFTP用户组(如sftpusers),设置ChrootDirectory %h(将用户限制在家目录)、ForceCommand internal-sftp(禁用shell登录)、AllowTcpForwarding no(禁用端口转发),既提升安全性又减少不必要的资源占用。MaxSessions(最大并发会话数,默认10,可根据需求调整为50-100)和MaxStartups(最大未认证连接数,默认10,可调整为100),允许更多并发连接,提升多用户同时传输的效率。ssh-keygen -t rsa生成密钥,ssh-copy-id user@server复制公钥),替代密码认证,减少认证过程的CPU消耗,同时提升安全性。scp或FileZilla)中开启压缩(-C参数,如scp -C file user@server:/path),减少传输的数据量,尤其适合文本、日志等可压缩文件。lftp的mirror --parallel=N命令,N为并发数)或多线程软件(如FileZilla的多线程传输设置),同时传输多个文件或分块传输大文件,提升整体传输效率。passive),避免主动模式下的端口映射问题,提升连接成功率。split命令将大文件分割为小块(如split -b 100M largefile part_),分别传输后再合并(cat part_* > largefile),减少单次传输的时间和失败重传的概率。/etc/ssh/sshd_config中指定高效加密算法(如Ciphers aes256-gcm@openssh.com),或在可信内网环境中降低加密强度(如使用aes128-ctr),平衡安全性与传输速度。