超大文件传输引起ftp不响应问题

今天发现了一个超大文件传输,会引起ftp不响应的问题。

软件的工作场景是这样的。目标机上有大约几十个文件,并且启动了ftp服务,客户端软件通过ftp协议,将目标机上的文件拷贝到本地。

为了提高软件下载文件的效率,客户端软件采用了多线程并发机制,针对目标机上每个文件,都建立一个ftp连接。文件下载完成后,即关闭连接。

最近在测试的过程中发现,在文件下载过程中,经常会出现ftp连接响应超时的问题。这个问题十多秒,又会恢复正常。过一会儿又出现这个问题。

今天经过排查,找到了问题的原因。如果目标机上的各个文件都不大,通过ftp传输能在很短的时间内完成的话,那么整个下载过程就会比较顺畅。

但如果其中某个文件很大,例如几百M到上G,就会出现整个下载过程时断时续的问题。他的原因在于,下载那个非常大的文件的时候,会占用目标机很多的CPU时间,让CPU无法响应别的ftp连接,从而导致别的ftp连接出现超时的问题。

从对这个问题的排查过程中,我得到两个收获。

第一,超大文件的对外传输,会占用本机过多的CPU时间,从而导致本机无法响应外界的其他请求。当然这个问题更可能在处理器性能极低,和核数极少的情况下出现,比如龙芯处理器。

第二,排查问题的过程,要关注变化。从刚开始的运行良好,到现在的运行总是出问题,之间肯定发生了某些技术状态变化。要特别关注技术状态变化是不是会引起问题的发生。

拿这次问题排查的过程来看,从去年上一个状态,软件能够运行良好,到今年的时候,软件运行很容易就出现问题,排查问题的时候,也对这其中的变化作了梳理,但是就是没有能够识别出,目标机上某个文件变大这个情况。就更不会意识到,文件变大,会引起这个问题的发生。

所以仅仅知道在排查问题的时候要关注前后的变化,其实是不够的。在碰到具体问题的时候,想要做到这一点还是比较困难。所以除了有理论指导之外,在问题排查的时候,要有具体问题具体分析的能力,而这个能力,可能需要在长期实践中锻炼提高。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • FTP服务概述 简单FTP构建及访问 VSFTP服务基础 用户禁锢、黑白名单 FTP并发及带宽限制 一、FTP服务...
    紫_轩阅读 7,815评论 3 25
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,248评论 19 139
  • 图片更清晰,文字在最下面 FTP是TCP/IP的一种应用,使用TCP而不是UDP,所以是可靠的,面向连接的。 FT...
    停下浮躁的心阅读 1,770评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,437评论 25 709
  • 终于下定决心要开始跑步了,今天是第一天。 五点闹铃响后,还是有一点懒床不想动,但想想既然已经决定了,那就不能轻易放...
    DevilMaster阅读 303评论 0 1