1、存儲
都知道傳統硬盤非常慢,有多慢呢?随機 IO 讀寫延遲大概 8ms 左右,萬轉磁盤順序 IO 延遲大概 0-6ms,最快可以達到幾十 us 以内,這是因為順序IO RAID卡緩存命中率很高。這就是 mysql、kafka 以及一些基于磁盤的 nosql 數據庫喜歡寫到各種日志文件中,其實這就是在利用磁盤的順序 IO 快速讀取和寫入的特性。
SSD 的随機 IO 延遲比傳統硬盤快百倍以上,但是主存比 SSD 可以快百倍以上;CPU 緩存一般分三級,随着級數變大,延遲越來越高,當然價格也也越來越昂貴。
2、CPU
CPU 首先需要先獲取指令才能執行指令,如果是嘗試獲取或者錯誤獲取的時間成本就是 10ns;
當代碼中存在多個線程或者進程共享資源時,需要加鎖,互斥鎖的成本就是 10ns,可見鎖的範圍越小越好;
多個線程共享同一個 CPU 時就需要上下文切換,一次上下文切換的成本就是 1us,可見線程并不一定是越多越好。
3、網絡
網絡傳輸跟距離有關,總結一下就是每 100km 大概需要 1ms。
總結
日常工作中,我們經常看到各種性能指标數據,當你看到性能指标數據時就能跟這些基礎設施的指标關聯起來,一眼就能看出到底是軟件層面的問題,還是基礎設施自身就存在問題,從而為我們的問題解決和性能優化打下基礎。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!