當前位置:首頁 » 硬碟大全 » 硬碟多線程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

硬碟多線程

發布時間: 2022-06-24 01:55:53

① 多線程4K 卡住 固態

可更換固態硬碟
硬碟的基本單元是扇區,現在硬碟物理扇區就是4096個位元組(以前是512,半K),即4K。而文件系統的基本單位是簇,簇只有在同樣是4K的情況下,才與物理的扇區一一對應,便硬碟達到最佳性能和壽命。假設一下,如果物理扇區是4K,而簇是6K,那麼,寫一個簇的文件,需要佔兩個物理扇區,硬碟的寫入量就是雙倍!這不但加大了硬碟的損耗,還大大減慢了速度(一個寫入動作變成兩個)。由於固態盤寫入壽命有限,這樣雙倍甚至更多倍的寫入量,無疑是讓固態盤壽命大幅度縮水。硬碟的4K性能,就是檢測4K讀寫能力,能充分看出4K對齊和不對齊的速度的差別。

② java多線程/磁碟IO過程詳解:為什麼說多線程

磁碟IO的速度在那裡了,就算你再多的線程,也繞不過IO瓶頸。不是說多線程不能提高效率,這個要看你項目的性能瓶頸在哪裡。 IO密集型,沒必要多線程,容易弄巧成拙。建議Cache,某些文件系統在順序讀或寫磁碟時速度相當快,如果恰好文件是順序存儲在磁碟上的,建議先盡量讀進內存,再一次性寫出去。其他什麼磁碟內存通道之類的底層技術就不是Java能左右的了。

③ 單線程讀寫和多線程讀寫

我們現在用的操作系統都是多線程的,多線程就是同時執行多個指令序列。
單線程讀寫就是只有一個線程對硬碟進行讀寫,多線程就是同時有多個線程請求對硬碟進行讀寫。

④ 硬碟多線程復制

你的理解 不對

就像你的ADSL 是2M的速度 那麼 你開1000個迅雷 你的最大速度也是2M 不會變成2000M

這是物理限制

你的硬碟也是一樣 有一個物理傳輸最大數

不關你是復制一個 還是 復制10個 都是已最大的 速度再運行

現在 SATA 內部速度 物理是400/S多 但是實際 也就 100/S 可能都不到

⑤ 多線程下載對硬碟是否有損害

http://..com/question/3051268.html

多線程應該是無害的...電腦用了兩年,天天BT,迅雷,沒什麼事

⑥ 多線程環境下磁碟讀取如何最大的提升吞吐率

windows 的建議使用重疊IO
重疊 I/O? 似乎沒有必要, 因為文件傳輸的話, 很大部分通信資源都只是簡單的單向數據傳輸, 不停的 while(1) { send()->recv() }
不過我也沒什麼經驗, 只是這樣推測...
現在的問題, 主要是我想要盡可能的提高磁碟的 i/o 吞吐, 減少伺服器的讀盤次數, 從而減少各線程因為磁碟 i/o 而阻塞的時間, 提高整體效率
減少伺服器的讀盤次數 --- 或許應該從調度演算法著手,盡可能讓同一個文件片段同時服務多個用戶.
減少伺服器的讀盤次數 --- 或許應該從調度演算法著手,盡可能讓同一個文件片段同時服務多個用戶.
你的建議不錯, 我也考慮過
不過如果使用這種方式的話, 整個系統會復雜很多, 而收益不一定理想
所以目前只是希望從基本的讀盤機制著手
剛剛在網上找了一番, 相關的資料不多, 在看一個 ftp 的源碼, 採用 read()+大緩存 的方式, 估計這是經過實戰考驗的方法了...
寫磁碟操作,加上互斥鎖,變成原子操作吧。或者使用本身承諾是原子操作的寫磁碟函數。這樣,就不至於多個線程來回切換造成的磁頭來回移動了。可以增加Performance
一般情況下,網路速度要慢於磁碟IO速度,因此,系統的主要速度瓶頸還是在網路上,要盡最大可能的利用網路資源。
比如現在該ftp伺服器連著5個客戶端,每次將文件分成固定大小的塊(例如64KB),進行發送。一旦發現某個連接傳完了當前塊,申請下一個塊,就立刻讀其文件的下一個塊,將該讀操作用Mutex或者CriticalSection保護起來,即必須一次把該塊讀完,中間不允許被打斷而讀別的塊去。這樣可以避免磁頭頻繁在不同文件之間切換。

如果網路速度大與磁碟IO速度,那麼每次傳輸,可以考慮將整個文件傳輸完畢再傳下一個文件。可以單線程來做了。不過這種情況在現有的網路速度情況下,一般是不會有的。
一般情況下,網路速度要慢於磁碟IO速度,因此,系統的主要速度瓶頸還是在網路上,要盡最大可能的利用網路資源。
比如現在該ftp伺服器連著5個客戶端,每次將文件分成固定大小的塊(例如64KB),進行發送。一旦發現某個連接傳完了當前塊,申請下一個塊,就立刻讀其文件的下一個塊,將該讀操作用Mutex或者CriticalSection保護起來,即必須一次把該塊讀完,中間不允許被打斷而讀別的塊去。這樣可以避免磁頭頻繁在不同文件之間切換。

加鎖是個不錯的主意~
至於一次傳完一個文件不太可能, 因為畢竟是多客戶環境, 如何為每一個客戶端提供平穩高效的服務才是問題的重點