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系統的分層 ...