說說IO(一) IO的分層

2021-08-07 09:37:11 字數 1219 閱讀 5406

io效能對於乙個系統的影響是至關重要的。乙個系統經過多項優化以後,瓶頸往往落在資料庫;而資料庫經過多種優化以後,瓶頸最終會落到io。而io效能的發展,明顯落後於cpu的發展。memchached也好,nosql也好,這些流行技術的背後都在直接或者間接地迴避io瓶頸,從而提高系統效能。

io系統的分層:

三層結構

上圖層次比較多,但總的就是三部分。磁碟(儲存)vm(卷管理)和檔案系統。專有名詞不好理解,打個比方說:磁碟就相當於一塊待用的空地;lvm相當於空地上的圍牆(把空地劃分成多個部分);檔案系統則相當於每塊空地上建的樓房(決定了有多少房間、房屋編號如何,能容納多少人住);而房子裡面住的人,則相當於系統裡面存的資料。

對應了上圖的file system和buffer cache。

file system(檔案系統):解決了空間管理的問題,即:資料如何存放、讀取。

buffer cache:解決資料緩衝的問題。對讀,進行cache,即:快取經常要用到的資料;對寫,進行buffer,緩衝一定資料以後,一次性進行寫入。

對應上圖的vol mgmt。

vm其實跟io沒有必然聯絡。他是處於檔案系統和磁碟(儲存)中間的一層。vm遮蔽了底層磁碟對上層檔案系統的影響。當沒有vm的時候,檔案系統直接使用儲存上的位址空間,因此檔案系統直接受限於物理硬碟,這時如果發生磁碟空間不足的情況,對應用而言將是一場噩夢,不得不新增硬碟,然後重新進行資料複製。而vm則可以實現動態擴充套件,而對檔案系統沒有影響。另外,vm也可以把多個磁碟合併成乙個磁碟,對檔案系統呈現統一的位址空間,這個特性的殺傷力不言而喻。

對應上圖的device driver、io channel和disk device

資料最終會放在這裡,因此,效率、資料安全、容災是這裡需要考慮的問題。而提高儲存的效能,則可以直接提高物理io的效能

2. logical io vs physical io

邏輯io是作業系統發起的io,這個資料可能會放在磁碟上,也可能會放在記憶體(檔案系統的cache)裡。

物理io是裝置驅動發起的io,這個資料最終會落在磁碟上。

邏輯io和物理io不是一一對應的。

說說IO(一) IO的分層

io效能對於乙個系統的影響是至關重要的。乙個系統經過多項優化以後,瓶頸往往落在資料庫 而資料庫經過多種優化以後,瓶頸最終會落到io。而io效能的發展,明顯落後於cpu的發展。memchached也好,nosql也好,這些流行技術的背後都在直接或者間接地迴避io瓶頸,從而提高系統效能。io系統的分層 ...

說說IO(一) IO的分層

io效能對於乙個系統的影響是至關重要的。乙個系統經過多項優化以後,瓶頸往往落在資料庫 而資料庫經過多種優化以後,瓶頸最終會落到io。而io效能的發展,明顯落後於cpu的發展。memchached也好,nosql也好,這些流行技術的背後都在直接或者間接地迴避io瓶頸,從而提高系統效能。io系統的分層 ...

什麼是IO(一) IO的分層

io效能對於乙個系統的影響是至關重要的。乙個系統經過多項優化以後,瓶頸往往落在資料庫 而資料庫經過多種優化以後,瓶頸最終會落到io。而io效能的發展,明顯落後於cpu的發展。memchached也好,nosql也好,這些流行技術的背後都在直接或者間接地迴避io瓶頸,從而提高系統效能。io系統的分層 ...