我買了Qnap 的873A,安裝了QuTS Hero 用6隻12TB的硬碟組了RAID5。
然後我在RAID5儲存池上建了3個共用資料夾,但是上傳文件時只有第一個資料夾能達到寫速600MB/s,其他2個資料夾能只有30MB/s。
是從同一電腦,同一SSD上傳同一個文件,所以不是網路,文件特性的問題。
請問是甚麼問題?
ZFS有一個特性,那就使用空間不能太滿,當使用空間太滿時,寫入的效能會降低。一般建議空間使用到80%時,就該考慮擴充儲存池。這是因為當剩餘空間變少時,可供寫入選擇的"連續大片可用空間"也跟著變少,系統不得不將資料寫入其他較小且分散不連續的空間,造成寫入效能的低落。
這個特性是針對整個儲存池的,但我發現當數據集開啟配額功能時,也會受到這個特性的影響,即使整個儲存池還有很多剩餘空間。舉個例,你的儲存池大小為1T,空間使用量為300G,這時寫入不受到影響。你新建一個數據集/test,並給予100G的配額限制;期初/test寫入資料時沒什麼影響,一直寫入到80G時,這時你針對/test的寫入操作就會感到明顯的緩慢,但這只針對/test的寫入,寫入資料到其他數據集還是很正常的。若你把配額限制取消或加大配額,寫入/test的效能又會變的正常。
由於你前面提供的資訊有點模糊,我猜你應該是用6顆硬碟組成一個Raidz,也就是說只有一個儲存池而不是三個,分成三個數據集。60T的儲存空間要放滿不太容易,第一個可能性基本上排除。三個數據集,一個正常,二個緩慢;若是那二個數據集有開啟配額,且使用量快達到配額限制,是有可能的。
另外,
>>上傳文件時只有第一個儲存池能達到寫速600MB/s
是使用10G網路嗎?
10G網路,6-way Raidz,這個速度是有可能達成的。事實上,若你NAS的記憶體夠大,同樣的文件上傳,速度應該更快,而不會是600、30、30。基本上可以排除網路的關係。
>>所有共用資料夾有開啟重複資料刪除及壓縮
壓縮無所謂,雖然會佔用CPU資源,但以現在CPU效能過盛來說,這點耗用可以接受,不會有太大的影響。但去重複就不建議開啟了,這項功能"十分"、"非常" 、"恐怖"的吃記憶體,絕非你小小NSA記憶體可以承受的。與其開啟去浪費寶貴的記憶體,不如平時做好資料的分類管理。還有,L2ARC也不建議使用…
HT1507 wrote:
是三個數據集,之前的(恕刪)
訊息錯誤,推測也就不正確…
你現在要做的是先測NAS本機讀寫是不是正常,若讀寫的速度正常,再來測試其他可能發生的問題點…
不曉得QNAP系統有沒有磁碟的效能測試程式,若沒有,SSH進NAS,執行以下指令,約略評測儲存池讀寫效能。
dd if=/dev/zero of=/pond/testfile bs=1M count=10000
此指令會寫入大小為10G的檔案至磁碟,/pond為你的路徑名稱,從根目錄開始。這三個數據集的寫入效能應該是差不多的。因為你的記憶體不算小,後面的測試會受到快取的影響,若要比較嚴謹,最好測一次,就將NAS重開一次。但就算不重開,也不會有600、30、30這麼大的差異。
讀取則是
dd if=/pond/testfile of=/dev/null bs=1M
在跑測試之前,可以執行另一個SSH,輸入以下指令,觀察磁碟實際讀寫狀態
zfs iostat -v 儲存池名稱 2
或檢示QNAP系統的I/O狀態。
就像我說的,不管你有幾個數據集,在同一個儲存池下,它們的讀寫效能應該是差不多的,不會一樣,但不會差太遠。若是數據集間讀寫差異太大,再來查是什麼原因,像是前面說的開配額巳用太滿,或是壓縮演算法不同等;若讀寫正常,基本上排除本機問題,再往網路傳輸方面查…
記憶體有到32G,那很不錯了,L2ARC有需要可以開啟,去重複小規模也可以開,整個儲存池開去重複,那還是算了,就算記憶再多4倍都不夠…




























































































