0
我設計的服務器用於以下情形:的Linux:需要設計預取緩存文件從NAS到系統內存
- 一系列單個圖像的存儲在NAS,可以說100他們
- 一個客戶端連接到服務器通過TCP套接字,並請image39
- 服務器從NAS讀取image39並在插座
- 很可能是客戶端也將請求其他圖片來自系列中,因此發回給客戶端:
- 我想啓動一個線程,通過圖像迭代,讀取它們,並做了
cat image39 > /dev/null
強制緩存到內存中的服務器 - 線程將如下獲取圖像:image38,image40,image37,image41等
- 獲取已影像被忽略
- 如果客戶現在要求image77,我想重置取線程獲取:image76,image78等
這有可能擴展到許多系列和客戶端。大概在1000個併發的 預取的順序。我知道如果線程太多,線程可能會導致性能下降。換一個新的流程會更好嗎?有沒有比線程或進程更有效的方法?
謝謝!
謝謝,約翰。但是,我*需要這種優化。沒有它,客戶端每次請求映像時,NAS讀取都會增加延遲。增加預取可以消除這種延遲,但代價很複雜。 – Jacko 2011-05-16 10:57:30
哦。你說你正在設計一個服務器,我認爲這是一個相當新的項目。如果您確定需要這樣的優化,我的兩個建議是制定一些基準來展示當前的性能,然後嘗試在固態驅動器(SSD)上運行它。 – 2011-05-17 01:52:06