本篇內(nèi)容主要講解“CPU、內(nèi)存、磁盤IO之間的關(guān)系是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“CPU、內(nèi)存、磁盤IO之間的關(guān)系是什么”吧!
鶴峰網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),鶴峰網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鶴峰千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的鶴峰做網(wǎng)站的公司定做!
一、名詞解釋
CPU:工人,干活的,判斷以及邏輯處理。
內(nèi)存:車間,工人干活的地方,車間中加工原料,當(dāng)車間中沒有原料了,在從倉庫中取原料,對原料進(jìn)行加工
內(nèi)存本身有一定的存儲空間,對內(nèi)存中的數(shù)據(jù)進(jìn)行處理的速度比從硬盤取數(shù)據(jù)再處理的速度快很多。
硬盤:倉庫,原料,數(shù)據(jù)存儲。
二、三者之間的關(guān)系
CPU對數(shù)據(jù)進(jìn)行判斷以及邏輯處理,本身不能存儲數(shù)據(jù),這時cpu從內(nèi)存取數(shù)據(jù)進(jìn)行邏輯計(jì)算,如果內(nèi)存沒有數(shù)據(jù),才會從硬盤讀數(shù)據(jù)到內(nèi)存,再對數(shù)據(jù)進(jìn)行處理。
就像人吃飯一樣,cpu就是人,內(nèi)存就是碗,硬盤就是飯鍋!
當(dāng)cpu進(jìn)程等待,會造成內(nèi)存開銷的增加,內(nèi)存不夠用的時候會用到虛擬內(nèi)存,導(dǎo)致虛擬內(nèi)存的增加,這時磁盤IO開銷就會增加,系統(tǒng)態(tài)sy%提升,cpu開銷增加;內(nèi)存里數(shù)據(jù)不夠用,才用磁盤中取數(shù)據(jù)。
三、性能高因素
1、系統(tǒng)CPU利用率高是什么原因?
系統(tǒng)中斷和切換頻繁很耗用CPU,共享資源競爭,大量io交互。CPU太差,主頻太低,都是形容CPU差。
蘋果系統(tǒng)一直是單線程,因?yàn)檫@樣減少了N多插隊(duì)的請求導(dǎo)致的中斷減速.
2、用戶CPU利用率高是什么原因?
計(jì)算量大,比如運(yùn)算,連接查詢,數(shù)據(jù)統(tǒng)計(jì);
非空閑等待,比如IO等待、資源爭用(同一資源被不同線程請求,而此資源又需要保持一致性,只能前一個釋放后一個
再訪問,這樣導(dǎo)致的等待);
過多的系統(tǒng)調(diào)用,系統(tǒng)調(diào)用即調(diào)用操作系統(tǒng)提供的程序接口,比如Java項(xiàng)目中寫日志,會調(diào)用系統(tǒng)接口進(jìn)行日志寫操作,這樣
會導(dǎo)致系統(tǒng)CPU使用率過高;
過多的中斷,中斷是CPU用來響應(yīng)請求的機(jī)制,比如鍵盤的輸入,鼠標(biāo)的點(diǎn)擊等都會產(chǎn)生中斷,中斷是通知CPU有任務(wù)需
要響應(yīng),CPU停下正在執(zhí)行的程序來響應(yīng)當(dāng)前的中斷;
3、內(nèi)存吃緊的原因?
多數(shù)是過多的頁交換和內(nèi)存泄漏
頁交換:內(nèi)存不夠用來存儲需要的數(shù)據(jù)時,操作系統(tǒng)會把原內(nèi)存中的部分內(nèi)容釋放掉(移除或者存入磁盤),然后把需要
的內(nèi)容載入,這個過程就是頁交換。
4、下面IO高的原因是?
讀寫量大;磁盤太慢,是因?yàn)檗D(zhuǎn)速慢,或者磁頭少,或者RAID 型號不太OK(RAID 有 0 1 5 10 100 等等,有的可以做存儲盤,有的可以做備份盤);
內(nèi)存不足,操作系統(tǒng)就會用虛擬內(nèi)存,肯定要用系統(tǒng)的交換區(qū)了,比如LINUX 的SWAP,就造成分頁增多;
如果你是老板,你如何檢查打工仔的效率(性能)呢? 我們一般會通過以下這些信息來判斷打工仔是否偷懶:
(1)、打工仔接受和完成多少任務(wù)并向老板匯報了(中斷);
(2)、打工仔和老板溝通、協(xié)商每項(xiàng)工作的工作進(jìn)度(上下文切換);
(3)、打工仔的工作列表是不是都有排滿(可運(yùn)行隊(duì)列);
(4)、打工仔工作效率如何,是不是在偷懶(CPU 利用率);
四、系統(tǒng)中的上下文切換 、運(yùn)行隊(duì)列等
上下文切換:每個CPU(或多核CPU的每個核心)在同一時間只能執(zhí)行一個線程<不包括超線程CPU>,Linux采用搶占式調(diào)度。
當(dāng)線程執(zhí)行到達(dá)一個時間片后,如果線程有IO阻塞或高優(yōu)先級線程要執(zhí)行的時候,Linux將執(zhí)行線程切換,切換前先保存當(dāng)
前線程執(zhí)行狀態(tài)(現(xiàn)場),并恢復(fù)待執(zhí)行線程狀態(tài),這個過程就叫做上下文切換。在Java應(yīng)用中,文件IO、網(wǎng)絡(luò)IO、鎖等待、線
程Sleep操作都會使該線程進(jìn)行阻塞或睡眠狀態(tài),從而觸發(fā)上下文切換。頻繁的上下文切換會造成內(nèi)核占用較高的CPU,使得
響應(yīng)速度下降。
運(yùn)行隊(duì)列:每個CPU核心都維護(hù)了一個可運(yùn)行隊(duì)列,例如一個4核CPU,啟動8個線程,且8個線程都處于可運(yùn)行狀態(tài),平均
分配情況下,每個核心的可運(yùn)行隊(duì)列里就有2個線程。通常而言,系統(tǒng)的load是由CPU運(yùn)行隊(duì)列決定的,假設(shè)以上狀態(tài)維持
了1分鐘,則1分鐘內(nèi)系統(tǒng)load就是2。運(yùn)行隊(duì)列值越大,代表線程要消耗越長的時間才能執(zhí)行完成。通常建議每個核心運(yùn)行
隊(duì)列為1-3個。
利用率:CPU利用率指在用戶進(jìn)程,內(nèi)核,中斷處理,IO等待以及空閑五個部分百分比,這五個值是用來分析CPU消耗情
況的關(guān)鍵指標(biāo)。Linux System and NetWork Performent Monitoring建議用戶進(jìn)程/內(nèi)核消耗比例為 65%-70% / 30%-3
5% 左右。
到此,相信大家對“CPU、內(nèi)存、磁盤IO之間的關(guān)系是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
文章名稱:CPU、內(nèi)存、磁盤IO之間的關(guān)系是什么
分享URL:http://aaarwkj.com/article2/gjoioc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、服務(wù)器托管、虛擬主機(jī)、網(wǎng)站維護(hù)、電子商務(wù)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)