超大文件傳輸引起ftp不響應問題

今天發(fā)現(xiàn)了一個超大文件傳輸,會引起ftp不響應的問題。

軟件的工作場景是這樣的。目標機上有大約幾十個文件,并且啟動了ftp服務,客戶端軟件通過ftp協(xié)議,將目標機上的文件拷貝到本地。

為了提高軟件下載文件的效率,客戶端軟件采用了多線程并發(fā)機制,針對目標機上每個文件,都建立一個ftp連接。文件下載完成后,即關閉連接。

最近在測試的過程中發(fā)現(xiàn),在文件下載過程中,經(jīng)常會出現(xiàn)ftp連接響應超時的問題。這個問題十多秒,又會恢復正常。過一會兒又出現(xiàn)這個問題。

今天經(jīng)過排查,找到了問題的原因。如果目標機上的各個文件都不大,通過ftp傳輸能在很短的時間內完成的話,那么整個下載過程就會比較順暢。

但如果其中某個文件很大,例如幾百M到上G,就會出現(xiàn)整個下載過程時斷時續(xù)的問題。他的原因在于,下載那個非常大的文件的時候,會占用目標機很多的CPU時間,讓CPU無法響應別的ftp連接,從而導致別的ftp連接出現(xiàn)超時的問題。

從對這個問題的排查過程中,我得到兩個收獲。

第一,超大文件的對外傳輸,會占用本機過多的CPU時間,從而導致本機無法響應外界的其他請求。當然這個問題更可能在處理器性能極低,和核數(shù)極少的情況下出現(xiàn),比如龍芯處理器。

第二,排查問題的過程,要關注變化。從剛開始的運行良好,到現(xiàn)在的運行總是出問題,之間肯定發(fā)生了某些技術狀態(tài)變化。要特別關注技術狀態(tài)變化是不是會引起問題的發(fā)生。

拿這次問題排查的過程來看,從去年上一個狀態(tài),軟件能夠運行良好,到今年的時候,軟件運行很容易就出現(xiàn)問題,排查問題的時候,也對這其中的變化作了梳理,但是就是沒有能夠識別出,目標機上某個文件變大這個情況。就更不會意識到,文件變大,會引起這個問題的發(fā)生。

所以僅僅知道在排查問題的時候要關注前后的變化,其實是不夠的。在碰到具體問題的時候,想要做到這一點還是比較困難。所以除了有理論指導之外,在問題排查的時候,要有具體問題具體分析的能力,而這個能力,可能需要在長期實踐中鍛煉提高。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • FTP服務概述 簡單FTP構建及訪問 VSFTP服務基礎 用戶禁錮、黑白名單 FTP并發(fā)及帶寬限制 一、FTP服務...
    紫_軒閱讀 8,046評論 3 25
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 圖片更清晰,文字在最下面 FTP是TCP/IP的一種應用,使用TCP而不是UDP,所以是可靠的,面向連接的。 FT...
    停下浮躁的心閱讀 1,823評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 終于下定決心要開始跑步了,今天是第一天。 五點鬧鈴響后,還是有一點懶床不想動,但想想既然已經(jīng)決定了,那就不能輕易放...
    DevilMaster閱讀 320評論 0 1

友情鏈接更多精彩內容