国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 正文

autosar中cpu的負(fù)載怎么計(jì)算

來源:懂視網(wǎng) 責(zé)編:小OO 時(shí)間:2023-06-21 19:39:44
文檔

autosar中cpu的負(fù)載怎么計(jì)算

autosar中cpu的負(fù)載可以用CPU一段工作時(shí)間與該時(shí)間段內(nèi)被占用時(shí)間的比值來計(jì)算,可以得之CPU負(fù)載率=占用時(shí)間除以運(yùn)行總時(shí)間。負(fù)載,在物理學(xué)中指連接在電路中的兩端具有一定電勢差的電子元件,用于把電能轉(zhuǎn)換成其他形式的能的裝置。在電工學(xué)中指在電路中接收電能的設(shè)備,是各類用電器的總稱。常用的負(fù)載有電阻、引擎、燈泡、空調(diào)、電動(dòng)機(jī)等可消耗功率的元件。對負(fù)載最基本的要求是阻抗匹配和所能承受的功率。
推薦度:
導(dǎo)讀autosar中cpu的負(fù)載可以用CPU一段工作時(shí)間與該時(shí)間段內(nèi)被占用時(shí)間的比值來計(jì)算,可以得之CPU負(fù)載率=占用時(shí)間除以運(yùn)行總時(shí)間。負(fù)載,在物理學(xué)中指連接在電路中的兩端具有一定電勢差的電子元件,用于把電能轉(zhuǎn)換成其他形式的能的裝置。在電工學(xué)中指在電路中接收電能的設(shè)備,是各類用電器的總稱。常用的負(fù)載有電阻、引擎、燈泡、空調(diào)、電動(dòng)機(jī)等可消耗功率的元件。對負(fù)載最基本的要求是阻抗匹配和所能承受的功率。

autosar中cpu的負(fù)載可以用CPU一段工作時(shí)間與該時(shí)間段內(nèi)被占用時(shí)間的比值來計(jì)算,可以得之CPU負(fù)載率=占用時(shí)間除以運(yùn)行總時(shí)間。

負(fù)載,在物理學(xué)中指連接在電路中的兩端具有一定電勢差的電子元件,用于把電能轉(zhuǎn)換成其他形式的能的裝置。

在電工學(xué)中指在電路中接收電能的設(shè)備,是各類用電器的總稱。

常用的負(fù)載有電阻、引擎、燈泡、空調(diào)、電動(dòng)機(jī)等可消耗功率的元件。

對負(fù)載最基本的要求是阻抗匹配和所能承受的功率。

小編還為您整理了以下內(nèi)容,可能對您也有幫助:

autosar中cpu的負(fù)載可以用CPU一段工作時(shí)間與該時(shí)間段內(nèi)被占用時(shí)間的比值來計(jì)算,可以得之CPU負(fù)載率=占用時(shí)間除以運(yùn)行總時(shí)間。

負(fù)載,在物理學(xué)中指連接在電路中的兩端具有一定電勢差的電子元件,用于把電能轉(zhuǎn)換成其他形式的能的裝置。

在電工學(xué)中指在電路中接收電能的設(shè)備,是各類用電器的總稱。

常用的負(fù)載有電阻、引擎、燈泡、空調(diào)、電動(dòng)機(jī)等可消耗功率的元件。

對負(fù)載最基本的要求是阻抗匹配和所能承受的功率。

cpu 使用率和負(fù)載的關(guān)系和區(qū)別

當(dāng)我們使用top命令查看系統(tǒng)的資源使用情況時(shí)會(huì)看到 load average,如下圖所示。它表示系統(tǒng)在1、5、15分鐘的平均工作負(fù)載。那么什么是負(fù)載(load)呢?它和CPU的利用率又有什么關(guān)系呢?

load average:系統(tǒng)平均負(fù)載是CPU的Load,它所包含的信息不是CPU的使用率狀況,而是在一段時(shí)間內(nèi)CPU正在處理以及等待CPU處理的進(jìn)程數(shù)之和的統(tǒng)計(jì)信息,也就是CPU使用隊(duì)列的長度的統(tǒng)計(jì)信息。這個(gè)數(shù)字越小越好。

CPU利用率:顯示的是程序在運(yùn)行期間實(shí)時(shí)占用的CPU百分比

CPU負(fù)載:顯示的是一段時(shí)間內(nèi)正在使用和等待使用CPU的平均任務(wù)數(shù)。CPU利用率高,并不意味著負(fù)載就一定大。舉例來說:如果我有一個(gè)程序它需要一直使用CPU的運(yùn)算功能,那么此時(shí)CPU的使用率可能達(dá)到100%,但是CPU的工作負(fù)載則是趨近于“1”,因?yàn)镃PU僅負(fù)責(zé)一個(gè)工作嘛!如果同時(shí)執(zhí)行這樣的程序兩個(gè)呢?CPU的使用率還是100%,但是工作負(fù)載則變成2了。所以也就是說,當(dāng)CPU的工作負(fù)載越大,代表CPU必須要在不同的工作之間進(jìn)行頻繁的工作切換。

舉例說明

網(wǎng)上有篇文章舉了一個(gè)有趣比喻,拿打電話來說明兩者的區(qū)別,我按自己的理解闡述一下。

某公用電話亭,有一個(gè)人在打電話,四個(gè)人在等待,每人限定使用電話一分鐘,若有人一分鐘之內(nèi)沒有打完電話,只能掛掉電話去排隊(duì),等待下一輪。電話在這里就相當(dāng)于CPU,而正在或等待打電話的人就相當(dāng)于任務(wù)數(shù)。

在電話亭使用過程中,肯定會(huì)有人打完電話走掉,有人沒有打完電話而選擇重新排隊(duì),更會(huì)有新增的人在這兒排隊(duì),這個(gè)人數(shù)的變化就相當(dāng)于任務(wù)數(shù)的增減。為了統(tǒng)計(jì)平均負(fù)載情況,我們5分鐘統(tǒng)計(jì)一次人數(shù),并在第1、5、15分鐘的時(shí)候?qū)y(tǒng)計(jì)情況取平均值,從而形成第1、5、15分鐘的平均負(fù)載。

有的人拿起電話就打,一直打完1分鐘,而有的人可能前三十秒在找電話號碼,或者在猶豫要不要打,后三十秒才真正在打電話。如果把電話看作CPU,人數(shù)看作任務(wù),我們就說前一個(gè)人(任務(wù))的CPU利用率高,后一個(gè)人(任務(wù))的CPU利用率低。

當(dāng)然, CPU并不會(huì)在前三十秒工作,后三十秒歇著,只是說,有的程序涉及到大量的計(jì)算,所以CPU利用率就高,而有的程序牽涉到計(jì)算的部分很少,CPU利用率自然就低。但無論CPU的利用率是高是低,跟后面有多少任務(wù)在排隊(duì)沒有必然關(guān)系。

這個(gè)有爭議,各有各的說法,個(gè)人比較贊同CPU負(fù)載小于等于0.5算是一種理想狀態(tài)。

不管某個(gè)CPU的性能有多好,1秒鐘能處理多少任務(wù),我們可以認(rèn)為它無關(guān)緊要,雖然事實(shí)并非如此。在評估CPU負(fù)載時(shí),我們只以5分鐘為單位為統(tǒng)計(jì)任務(wù)隊(duì)列長度。如果每隔5分鐘統(tǒng)計(jì)的時(shí)候,發(fā)現(xiàn)任務(wù)隊(duì)列長度都是1,那么CPU負(fù)載就為1。假如我們只有一個(gè)單核的CPU,負(fù)載一直為1,意味著沒有任務(wù)在排隊(duì),還不錯(cuò)。

但是我那臺(tái)服務(wù)器,是雙核CPU,等于是有4個(gè)內(nèi)核,每個(gè)內(nèi)核的負(fù)載為1的話,總負(fù)載為4。這就是說,如果我那臺(tái)服務(wù)器的CPU負(fù)載長期保持在4左右,還可以接受。

但是每個(gè)內(nèi)核的負(fù)載為1,并不能算是一種理想狀態(tài)!這意味著我們的CPU一直很忙,不得清閑。網(wǎng)上有說理想的狀態(tài)是每個(gè)內(nèi)核的負(fù)載為0.7左右,我比較贊同,0.7乘以內(nèi)核數(shù),得出服務(wù)器理想的CPU負(fù)載,比如我這臺(tái)服務(wù)器,負(fù)載在3.0以下就可以。

最簡單辦法的是更換性能更好的服務(wù)器,不要想著僅僅提高CPU的性能,那沒有用,CPU要發(fā)揮出它最好的性能還需要其它軟硬件的配合。

在服務(wù)器其它方面配置合理的情況下,CPU數(shù)量和CPU核心數(shù)(即內(nèi)核數(shù))都會(huì)影響到CPU負(fù)載,因?yàn)槿蝿?wù)最終是要分配到CPU核心去處理的。兩塊CPU要比一塊CPU好,雙核要比單核好。

因此,我們需要記住,除去CPU性能上的差異,CPU負(fù)載是基于內(nèi)核數(shù)來計(jì)算的!有一個(gè)說法,“有多少內(nèi)核,即有多少負(fù)載”。

4. CPU使用率到多少才算比較理想?

CPU利用率在過去常常被我們這些外行認(rèn)為是判斷機(jī)器是否已經(jīng)到了滿負(fù)荷的一個(gè)標(biāo)準(zhǔn),我看到長時(shí)間CPU使用率60-80%就認(rèn)為機(jī)器有瓶頸出現(xiàn)。

-----------------------------------

https://blog.51cto.com/wks97/2073217

cpu占用和性能有關(guān)系嗎?

CPU占用率和CPU性能有關(guān)系,一般說來,同樣的應(yīng)用,CPU占用率越低,說明這個(gè)CPU性能越高。有一定的關(guān)系,但不是說必然的正比例的關(guān)系。還和溫度啊,顯卡內(nèi)存等其他配套設(shè)備有關(guān)。一個(gè)性能高的CPU但內(nèi)存少可能也占用多。

而cpu使用率指cpu的負(fù)載情況。打開資源管理器(ctrl+alt+del),就可以看見cpu的使用率,是用百分比(%)表示的,一般都在5%~100%之間,數(shù)值大小根據(jù)cpu的負(fù)載情況而定。百分比數(shù)值越大就是表示cpu的負(fù)載越高,反之亦然。

于是cpu主頻和使用率的關(guān)系就出來了。同等檔次的cpu,在處理相同數(shù)據(jù)量的時(shí)候,主頻高的cpu,其使用率低;主頻低的cpu,使用率就高。

CPU使用率指的是程序在運(yùn)行期間實(shí)時(shí)占用的CPU百分比,這是對一個(gè)時(shí)間段內(nèi)CPU使用狀況的統(tǒng)計(jì)。通過這個(gè)指標(biāo)可以看出在某一個(gè)時(shí)間段內(nèi)CPU被占用的情況。

CPU(Central Processing Unit)是計(jì)算機(jī)系統(tǒng)的運(yùn)算和控制核心,是信息處理、程序運(yùn)行的最終執(zhí)行單元,相當(dāng)于系統(tǒng)的“大腦”。當(dāng) CPU 過于繁忙,就像“人腦”并發(fā)處理過多的事情,會(huì)降低做事的效率,嚴(yán)重時(shí)甚至?xí)?dǎo)致崩潰“宕機(jī)”。因此,理解 CPU 的工作原理,合理控制負(fù)載,是保障系統(tǒng)穩(wěn)定持續(xù)運(yùn)行的重要手段。

CPU性能首先是與架構(gòu)有很大關(guān)系,不管頻率多高,核心數(shù)多強(qiáng),如果架構(gòu)本身效率低,那么這顆CPU的效能也不會(huì)好

CPU資源占用率高會(huì)導(dǎo)致電腦運(yùn)行速度變慢,如果是偶爾出現(xiàn)這種情況并很快恢復(fù)則屬于正常。但如果長期居高不下就有問題了,很多人第一時(shí)間會(huì)想到中毒了。通過升級殺毒軟件并殺毒,排除了病毒的原因后,如果CPU資源占用率還是居高不下,

很多人就不知道怎么辦了第一時(shí)間想到病毒這很正常,畢竟這也是感染病毒后的典型癥狀,但并不代表一定有病毒。如果排除了病毒的原因,我建議還是先從進(jìn)程入手,在任務(wù)管理器中檢查一下是哪個(gè)進(jìn)程占用了大量的CPU資源,記住這個(gè)進(jìn)程名稱,到網(wǎng)上搜索一下別人對這個(gè)進(jìn)程的描述,這樣可借用他人成功的經(jīng)驗(yàn)來分析、處理自己遇到的故障。要注意的是部分系統(tǒng)進(jìn)程也可能被病毒利用

CPU負(fù)載太高什么意思啊

即目前工作量已經(jīng)接近于CPU的最大算力了,這會(huì)導(dǎo)致電腦反應(yīng)過慢。負(fù)載就是cpu在一段時(shí)間內(nèi)正在處理以及等待cpu處理的進(jìn)程數(shù)之和的統(tǒng)計(jì)信息,也就是cpu使用隊(duì)列的長度統(tǒng)計(jì)信息,這個(gè)數(shù)字越小越好。

負(fù)載分為兩大部分:CPU負(fù)載、IO負(fù)載。

例如,假設(shè)有一個(gè)進(jìn)行大規(guī)??茖W(xué)計(jì)算的程序,雖然該程序不會(huì)頻繁地從磁盤輸入輸出,但是處理完成需要相當(dāng)長的時(shí)間。因?yàn)樵摮绦蛑饕挥脕碜鲇?jì)算、邏輯判斷等處理,所以程序的處理速度主要依賴于cpu的計(jì)算速度。

擴(kuò)展資料

原因:

1、磁盤讀寫請求過多就會(huì)導(dǎo)致大量I/O等待

cpu的工作效率要高于磁盤,而進(jìn)程在cpu上面運(yùn)行需要訪問磁盤文件,這個(gè)時(shí)候cpu會(huì)向內(nèi)核發(fā)起調(diào)用文件的請求,讓內(nèi)核去磁盤取文件,這個(gè)時(shí)候會(huì)切換到其他進(jìn)程或者空閑,這個(gè)任務(wù)就會(huì)轉(zhuǎn)換為不可中斷睡眠狀態(tài)。當(dāng)這種讀寫請求過多就會(huì)導(dǎo)致不可中斷睡眠狀態(tài)的進(jìn)程過多,從而導(dǎo)致負(fù)載高,cpu低的情況。

2、MySQL中存在沒有索引的語句或存在死鎖等情況

MySQL的數(shù)據(jù)是存儲(chǔ)在硬盤中,如果需要進(jìn)行sql查詢,需要先把數(shù)據(jù)從磁盤加載到內(nèi)存中。當(dāng)在數(shù)據(jù)特別大的時(shí)候,如果執(zhí)行的sql語句沒有索引,就會(huì)造成掃描表的行數(shù)過大導(dǎo)致I/O阻塞,或者是語句中存在死鎖,也會(huì)造成I/O阻塞,從而導(dǎo)致不可中斷睡眠進(jìn)程過多,導(dǎo)致負(fù)載過大。

系統(tǒng)負(fù)載是什么

問題一:什么是計(jì)算機(jī)負(fù)載?操作系統(tǒng)負(fù)載是什么? 使用uptime或者top命令,都可以看到一個(gè)負(fù)載的輸出,形如load average: 0.00, 0.03, 0.00,這個(gè)負(fù)載到底是什么東西呢,man文檔里只是一筆帶過,沒有具體的給出負(fù)載的定義。   負(fù)載的統(tǒng)計(jì),必然是由內(nèi)核完成的,因此在內(nèi)核源碼中找答案是再好不過的事情了,找來2.6.21的內(nèi)核源碼,開始探索?! 」?jié)選部分源碼:  kernel/timer.c

1254 active_tasks = count_active_tasks();

1256 CALC_LOAD(avenrun[0], EXP_1, active_tasks);

1257 CALC_LOAD(avenrun[1], EXP_5, active_tasks);

1258 CALC_LOAD(avenrun[2], EXP_15, active_tasks);

include/linux/sched.h

110 #define FSHIFT   11   /* nr of bits of precision */

111 #define FIXED_1   (1>= FSHIFT;   load(t) = ( load(t-1)*exp(i) + n(t)*(2048-exp(i)) ) / 2048  load(t-1)為上次計(jì)算出的結(jié)果  n(t)為t時(shí)刻的活動(dòng)進(jìn)程數(shù)  計(jì)算方式是累加各個(gè)CPU的運(yùn)行隊(duì)列中running和uninterruptible的值 再乘以2048  計(jì)算方式如下:  1946 unsigned long nr_active(void)

1947 {

1948 unsigned long i, running = 0, uninterruptible = 0;

1949

1950 for_each_online_cpu(i) {

1951 running += cpu_rq(i)->nr_running;

1952 uninterruptible += cpu_rq(i)->nr_uninterruptible;

1953 }

1954

1955 if (unlikely((long)uninterruptible >

問題二:電力系統(tǒng)中負(fù)載什么意思?負(fù)荷什么意思 電力系統(tǒng)用語負(fù)載就是消耗電能的設(shè)備,除了工礦企業(yè)和家庭用電設(shè)備以外,系統(tǒng)中的變壓器,輸電線路等也消耗一定的電能,所以也可以認(rèn)為是發(fā)電機(jī)的負(fù)載。負(fù)載二字就是負(fù)擔(dān)載荷的意思。

負(fù)荷有時(shí)和負(fù)載可以通用。對發(fā)電機(jī)來說負(fù)荷表示發(fā)電機(jī)輸出的有功功率和無功功率,對用戶來說負(fù)荷表示用電量的大小。發(fā)電機(jī)變壓器滿負(fù)荷表示它已達(dá)到最大功率。大致含義如此。

問題三:linux系統(tǒng)平均負(fù)載,數(shù)值是什么意思? 系統(tǒng)平均負(fù)載被定義為在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程樹。如果一個(gè)進(jìn)程滿足以下條件則其就會(huì)位于運(yùn)行隊(duì)列中:- 它沒有在等待I/O 操作的結(jié)果- 它沒有主動(dòng)進(jìn)入等待狀態(tài)(也就是沒有調(diào)用'wait') - 沒有被停止(例如:等待終止) 例如:[[email protected] init.d]# uptime 7:51pm up 2 days, 5:43, 2 users,load average: 8.13 , 5.90 , 4.94 命令輸出的最后內(nèi)容表示在過去的1 、5 、15分鐘內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程數(shù)量。 一般來說只要每個(gè)CPU 的當(dāng)前活動(dòng)進(jìn)程數(shù)不大于3 那么系統(tǒng)的性能就是良好的,如果每個(gè)CPU 的任務(wù)數(shù)大于5 ,那么就表示這臺(tái)機(jī)器的性能有嚴(yán)重問題。對于上面的例子來說,假設(shè)系統(tǒng)有兩個(gè)CPU ,那么其每個(gè)CPU 的當(dāng)前任務(wù)數(shù)為:8.13/2=4.065.這表示該系統(tǒng)的性能是可以接受的。

問題四:什么叫做操作系統(tǒng)負(fù)載基線 負(fù)載壓力測試有助于確認(rèn)被測系統(tǒng)是否能夠支持性能需求,以及預(yù)期的負(fù)載增長等。負(fù)載壓力測試不只是關(guān)注不同負(fù)載場景下的響應(yīng)時(shí)間等指標(biāo),它也要通過測試來發(fā)現(xiàn)在不同負(fù)載場景下會(huì)出現(xiàn)的,例如速度變慢、內(nèi)存泄漏等問題的原因。負(fù)載壓力測試是性能測試的重要組成部分,負(fù)載壓力測試包括并發(fā)性能測試、疲勞強(qiáng)度測試、大數(shù)據(jù)量測試等內(nèi)容。

問題五:負(fù)載是什么意思 負(fù)川是指連接在電路中的電源兩端的電路元件。

電路中不應(yīng)沒有負(fù)載而直接把電源兩極相連,此連接稱為短路。常用的負(fù)載有電阻、引擎和燈泡等可消耗功率的元件。不消耗功率的元件,如電容,也可接上去,但此情況為斷路。在應(yīng)用電力系統(tǒng)中,發(fā)電廠的地位相當(dāng)于電源,而工廠,家庭等消耗電能,是負(fù)載。

問題六:電力系統(tǒng)中的負(fù)載是什么意思? 用電器,電阻之類

問題七:什么是系統(tǒng)負(fù)載?uptime? 系統(tǒng)平均負(fù)載被定義為在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程樹。如果一個(gè)進(jìn)程滿足一下條件則其就會(huì)位于運(yùn)行隊(duì)中中:

它沒有在等待I/O操作的結(jié)果它沒有主動(dòng)進(jìn)入等待狀態(tài)(也就是沒有調(diào)用wait)沒有被停止(例如:等待終止) 一般來說,每個(gè)CPU內(nèi)核當(dāng)前活動(dòng)進(jìn)程樹不大于3,則系統(tǒng)運(yùn)行表現(xiàn)良好!當(dāng)然這里說的是每個(gè)CPU

內(nèi)核,也就是如果你的主機(jī)是四核CPU的話,那么只要是uptime最后輸出的一串字符數(shù)值小于12即表示系統(tǒng)負(fù)載不是很嚴(yán)重。

當(dāng)然如果達(dá)到20,那就表示當(dāng)前系統(tǒng)負(fù)載非常嚴(yán)重,估計(jì)打開執(zhí)行web腳本非常緩慢。

以下顯示輸入uptime的信息:

問題八:什么是負(fù)載均衡 負(fù)載平衡也稱負(fù)載共享,是指對系統(tǒng)中的負(fù)載情況進(jìn)行動(dòng)態(tài)調(diào)整,以盡量消除或減少系統(tǒng)中各節(jié)點(diǎn)負(fù)載不均衡的現(xiàn)象。具體實(shí)現(xiàn)方法是將過載節(jié)點(diǎn)上的任務(wù)轉(zhuǎn)移到其他輕載節(jié)點(diǎn)上,盡可能實(shí)現(xiàn)系統(tǒng)各節(jié)點(diǎn)的負(fù)載平衡,從而提高系統(tǒng)的吞吐量。負(fù)載共享有利于統(tǒng)籌管理分布式系統(tǒng)中的各種資源,便于利用共享信息及其服務(wù)機(jī)制擴(kuò)大系統(tǒng)的處理能力。

動(dòng)態(tài)負(fù)載共享策略是指把系統(tǒng)中各節(jié)點(diǎn)上已有的負(fù)載作為參考信息,在運(yùn)行過程中,根據(jù)系統(tǒng)中各節(jié)點(diǎn)的負(fù)載狀況,隨時(shí)調(diào)整負(fù)載的分配,使各節(jié)點(diǎn)盡可能保持負(fù)載的平衡。

負(fù)載:負(fù)載共享算法中的關(guān)鍵問題是如何確定負(fù)載。根據(jù)任務(wù)負(fù)載可以判斷某一任務(wù)在特定節(jié)點(diǎn)的響應(yīng)時(shí)間,確定在該節(jié)點(diǎn)上的執(zhí)行性能。曾經(jīng)被研究及使用的負(fù)載包括CPU隊(duì)列長度、某時(shí)間內(nèi)的平均CPU隊(duì)列長度、CPU利用率等。Kunz發(fā)現(xiàn)負(fù)載的選取對系統(tǒng)性能有著重要的影響,而最有效的負(fù)載計(jì)算方式是CPU隊(duì)列長度。

動(dòng)機(jī):用戶將任務(wù)提交給系統(tǒng)處理,由于任務(wù)到達(dá)的隨機(jī)性導(dǎo)致了某些處理機(jī)處于過載而某些處理處于空閑或輕載狀態(tài)。負(fù)載共享能夠通過將過載處理機(jī)上的任務(wù)遷移到輕載處理機(jī)上執(zhí)行來提高性能。

性能:從靜態(tài)角度看,高性能是指各處理機(jī)上的負(fù)載基本平衡。從動(dòng)態(tài)角度看,性能的尺度是任務(wù)的平均響應(yīng)時(shí)間,而任務(wù)的響應(yīng)時(shí)間是指任務(wù)從提交到開始執(zhí)行的持續(xù)時(shí)間。

負(fù)載平衡策略:

動(dòng)態(tài)負(fù)載平衡策略包含四個(gè)部分:轉(zhuǎn)移策略、選擇策略、定位策略和信息策略。

問題九:cpu負(fù)載是什么意思 cpu負(fù)載的定義:在一般情況下可以將單核心cpu的負(fù)載看成是一條單行的橋,數(shù)字1代表cpu剛好能夠處理過來,即橋上能夠順利通過所有的車輛,橋外沒有等待的車輛,橋是暢通的。當(dāng)超過1時(shí)表示有等待上橋的車輛,小于1時(shí)表示車輛能夠快速的通過。單核心cpu就表示該cpu能夠處理的事務(wù)數(shù)是1,

在多核cpu中cpu能夠并行處理的事務(wù)的數(shù)量應(yīng)該是cpu個(gè)數(shù)*cpu核數(shù),而且負(fù)載數(shù)最好不要超過這個(gè)數(shù)值。例如一個(gè)4核cpu,則cpu_load最大值為4,不能長期超過4,否則會(huì)有任務(wù)沒有得到及時(shí)的處理,而使系統(tǒng)的負(fù)載累積增高,導(dǎo)致系統(tǒng)運(yùn)行緩慢。

問題十:請問高手們,軟件系統(tǒng)負(fù)載壓力測試的主要目的是什么? 首先,你的問題本身不夠準(zhǔn)確。負(fù)載測試和壓力測試是不同的兩種性能測試方式。

1、先說壓力測試,壓力測試是為了確定系統(tǒng)的瓶頸或者最大使用極限的。為了考察系統(tǒng)在極端條件下的表現(xiàn),極端條件可以是超負(fù)荷的交易量和并發(fā)用戶數(shù),方法是分別模擬一定數(shù)量的用戶并發(fā)訪問系統(tǒng),記錄并分析系統(tǒng)響應(yīng)時(shí)間;

2、再說負(fù)載測試,負(fù)載測試是為了測試軟件系統(tǒng)當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。站在用戶的角度去觀察在一定條件下系統(tǒng)的性能表現(xiàn)。這些考察指標(biāo)一般為響應(yīng)時(shí)間、交易容量、并發(fā)容量、資源使用率等。

再說下兩者的區(qū)別:壓力測試一般設(shè)置的 *** 點(diǎn)策略是100%VU同時(shí)增加,指標(biāo)要求是系統(tǒng)正常運(yùn)行,負(fù)載測試一般不設(shè)置 *** 點(diǎn),每幾秒鐘增加一定的VU數(shù),記錄系統(tǒng)平均響應(yīng)時(shí)間。當(dāng)前業(yè)內(nèi)普遍的標(biāo)準(zhǔn)是2/5/10原則,2s以內(nèi)為優(yōu)秀,5s以內(nèi)可以接受,10秒是極限。

不知道回答的是否您需要的答案,能否為您解決問題。

CPU的耗電值和什么有關(guān),怎么計(jì)算的?

TDP 50W 是設(shè)計(jì)最大功耗,一般在上網(wǎng)之類的時(shí)候只有10幾w,游戲時(shí)看占用情況,一般占到一半時(shí)就達(dá)到30w了,滿載肯定不止50w,一般要高出20%。你可以下載一個(gè)AIDA 64 監(jiān)控一下。

核心電壓一般也隨著cpu負(fù)載而升高,電壓越高功耗也越大,但是設(shè)置了電壓后,就算不升壓電流也會(huì)增大,功耗也增大追問那TDP注明最大50W+20%也就是60W,那核心電壓怎么弄也不會(huì)變?

核心電壓是CPU統(tǒng)一的計(jì)量標(biāo)準(zhǔn)算耗電量,還是先看CPU的類型和型號,在看核心電壓算耗電量的?

追答你這個(gè)問題太難回答,cpu制作工藝不同從90納米-22納米,架構(gòu)也不一樣,核心多少不同,主頻也不一樣,沒有一個(gè)簡單的公式。一般說的綜合考慮同一款cpu功耗都不一樣的。比如i5 3570k。超頻到同等頻率下,電壓就很多不一樣,電壓高的功耗大

請問autosar和osek的關(guān)系是什么?

都是汽車電子軟件的標(biāo)準(zhǔn)。

AUTOSAR與OSEK二者都是汽車電子軟件的標(biāo)準(zhǔn)。

OSEK基于ECU開發(fā),AUTOSAR基于整體汽車電子開發(fā)。

1.AUTOSAR

AUTOSAR一般就是指AUTOSAR構(gòu)架/標(biāo)準(zhǔn),AUTOSAR的全稱是AUTomotive Open System ARchitecture),隨著多年的發(fā)展,越來越多的行業(yè)內(nèi)的公司加入到了AUTOSAR聯(lián)盟中,這其中有OEM(汽車整車廠),Tier1(汽車零部件供應(yīng)商),芯片制造商以及工具制造商,AUTOSAR構(gòu)架/標(biāo)準(zhǔn)也成為了汽車E/E設(shè)計(jì)的發(fā)展方向。

2.OSEK

在1995年召開的研討會(huì)上眾多的廠商對OSEK和VDX的認(rèn)識達(dá)成了共識,產(chǎn)生了OSEK/VDX規(guī)范(1997年發(fā)布),本文簡稱OSEK規(guī)范。

它主要由四部分組成:操作系統(tǒng)規(guī)范(OSEK Operating System,OSEK OS)、通信規(guī)范(OSEK Communication , OSEK COM )、網(wǎng)絡(luò)管理規(guī)范( OSEK Net Management, OSEK NM)和OSEK實(shí)現(xiàn)語言(OSEK Implementation Language,OIL)。

擴(kuò)展資料:

OSEK OS的特點(diǎn)

OSEK規(guī)范為實(shí)現(xiàn)其制定的初衷并滿足汽車控制領(lǐng)域?qū)ο到y(tǒng)安全性和節(jié)省有限資源的特殊要求,制定了系統(tǒng)而全面的操作系統(tǒng)規(guī)范。其特點(diǎn)主要有以下幾個(gè)方面。

1. 實(shí)時(shí)性 

由于越來越多的微處理器被應(yīng)用到汽車控制領(lǐng)域,如汽車剎車的防抱死系統(tǒng)、動(dòng)力設(shè)備的安全控制等這些系統(tǒng)直接關(guān)系著人的生命安全,即使出現(xiàn)絲毫的差錯(cuò)也會(huì)導(dǎo)致危及生命安全的嚴(yán)重后果,因此要求操作系統(tǒng)具有嚴(yán)格的實(shí)時(shí)性。

2.可移植性 

OSEK規(guī)范詳細(xì)規(guī)定了操作系統(tǒng)運(yùn)行的各種機(jī)制,并在這些機(jī)制基礎(chǔ)上制定了標(biāo)準(zhǔn)的應(yīng)用程序編程接口,使那些編寫的代碼能夠很容易地整合起來,增強(qiáng)了應(yīng)用程序的可移植性。

3.可擴(kuò)展性 

為了適用于廣泛的目標(biāo)處理器,支持運(yùn)行在廣泛硬件基礎(chǔ)上的實(shí)時(shí)程序,OSEK操作系統(tǒng)具備高度模塊化和可靈活配置的特性。

AUTOSAR特點(diǎn)

1、模塊化和可配置性 

定義了一套汽車ECU軟件構(gòu)架,將不依賴硬件的軟件模塊和依賴硬件的軟件模塊分別優(yōu)雅的封裝起來,從而可以讓ECU可以集成由不同供應(yīng)商提供的軟件模塊,增加了功能的重用性,提高了軟件質(zhì)量。軟件可以根據(jù)不同的ECU功能需求和資源情況進(jìn)行靈活配置。

2、有標(biāo)準(zhǔn)化接口 

定義了一系列的標(biāo)準(zhǔn)API來實(shí)現(xiàn)軟件的分層化。

3、提出了RTE的概念 

RTE全稱是Runtime Environment,采用RTE實(shí)現(xiàn)了ECU內(nèi)部和ECU之間的節(jié)點(diǎn)通訊,RTE處于功能軟件模塊和基礎(chǔ)軟件模塊之間,使得軟件集成更加容易。

4、具有標(biāo)準(zhǔn)的測試規(guī)范 

針對功能和通訊總線制定了標(biāo)準(zhǔn)的測試規(guī)范,測是規(guī)范涵蓋的范圍包括對于AUTOSAR的應(yīng)用兼容性(例如RTE的需求,軟件服務(wù)行為需求和庫等)和總線兼容性(總線處理行為和總線協(xié)議等),它的目標(biāo)是建立標(biāo)準(zhǔn)的測試規(guī)范從而減少測試工作量和成本。

參考資料:百度百科-AUTOSAR

參考資料:百度百科-osek

Vector-AUTOSAR使用中的問題總結(jié)

配置工具:DaVinci(達(dá)芬奇)

DaVinci DaVinci

1、導(dǎo)入DBC文件

導(dǎo)入DBC文件——1 導(dǎo)入DBC文件——1 導(dǎo)入DBC文件——2 導(dǎo)入DBC文件——2

2、導(dǎo)入CDD文件

導(dǎo)入CDD文件——1 導(dǎo)入CDD文件——1 導(dǎo)入CDD文件——2 導(dǎo)入CDD文件——2

3、只要更改了DBC或CDD文件,都需要 Update

更新方式 更新方式 正在更新 正在更新

1、一般情況下直接調(diào)用  CanNm _DisableCommunication (CanNm 模塊 ) 接口就一定可以關(guān)掉 NM 報(bào)文發(fā)送。

問:調(diào)用 CanNm _DisableCommunication 接口的話,是不是模塊也接收不到總線上的網(wǎng)絡(luò)管理報(bào)文了,自己也不能發(fā)送 NMF 了?

答:vecotor解釋,“好像能接收,只是不發(fā)送”。(具體現(xiàn)象還需要debug調(diào)試)。

2、調(diào)用  CanNm _EnableCommunication (CanNm 模塊) 接口是打開 NM 報(bào)文發(fā)送。

注意: 如果  CANNM_COM_CONTROL_ENABLED 宏沒有打開,即 STD_OFF, 則直接在應(yīng)用程序中調(diào)用  CanNm_DisableCommunication 接口,程序會(huì)報(bào)錯(cuò):提示 function has no prototype ,即使包含  CanNm.h 頭文件也沒用。

打開  CANNM_COM_CONTROL_ENABLED  宏的配置方法:

配置1 配置1 配置2 配置2

這樣就可以將  CANNM_COM_CONTROL_ENABLED  宏打開( STD_ON ),然后可以直接調(diào)用  CanNm _DisableCommunication / CanNm _EnableCommunication 接口了。

以上是手動(dòng)禁止 NMF 發(fā)送的方法,其實(shí)打開了   CANNM_COM_CONTROL_ENABLED  宏之后, 也可以用配置工具配置,更簡單實(shí)現(xiàn)禁止 NMF 發(fā)送,如下:

通過配置關(guān)閉 NMF 發(fā)送 通過配置關(guān)閉 NMF 發(fā)送

注意: 特別是Nm Communication這個(gè),必須勾選上。

問題描述: 產(chǎn)品上電,通過工具模擬總線報(bào)文發(fā)送,發(fā)送一幀報(bào)文(例如 0x621 ), Appl_GenericPrecopy() 接口沒有接收到,發(fā)送第二幀的時(shí)候,ID報(bào)文跳才會(huì)轉(zhuǎn)到 Appl_GenericPrecopy() 接口。 Appl_GenericPrecopy() 接口不是接收所有的ID報(bào)文嗎?為什么剛開始上電連續(xù)發(fā)送2幀報(bào)文才會(huì)跳轉(zhuǎn)到 Appl_GenericPrecopy() 接口?

答:vector解釋,“   第一幀作為喚醒幀的話,只是喚醒ECU,第二幀才能被接收到。 在實(shí)車環(huán)境下這種情況是比較常見的,如果ECU速度比較慢的話可能需要更多幀才能被接收到”。

問題描述:   模塊上電的時(shí)候, 發(fā)送一幀診斷報(bào)文(例如:10 03),模塊沒有任何響應(yīng)(肯定或否定) ,直到模塊的 應(yīng)用報(bào)文 和 網(wǎng)絡(luò)管理報(bào)文 發(fā)出來后,再發(fā)診斷報(bào)文,模塊是可以響應(yīng)的,這個(gè)是不是在配置工具中配置了?

答: Vector: 這個(gè)是可以配置或者可以在回調(diào)函數(shù)里面做的, 一般泛亞都是要求只有網(wǎng)絡(luò)管理報(bào)文才能喚醒ECU,診斷報(bào)文是喚不醒的 。所以會(huì)出現(xiàn)你說的這種情況。

問題描述: 模塊上電,模塊發(fā)出的第一幀(模塊的網(wǎng)絡(luò)管理報(bào)文周期640ms,應(yīng)用報(bào)文周期1s)與接收到的第一幀網(wǎng)絡(luò)管理報(bào)文時(shí)間相差的800多ms,第一幀發(fā)送出來比較慢,請問這個(gè)是什么引起的,AUTOSAR的模塊調(diào)用比較慢嗎?

答:Vector:模塊調(diào)用的話都是你們自己的系統(tǒng)調(diào)度的,首先看看是否調(diào)度有延遲之類的。其次可以看看從上電到調(diào)用 CanNm_TriggerTransmission 需要多長時(shí)間,這個(gè)函數(shù)是發(fā)送 NM 報(bào)文的。

接著可以做以下測試:1、從上電到調(diào)用  Can_Write  的時(shí)間。2、在 CanHL_StartTransition  中會(huì)調(diào)用 CanIf_ControllerModeIndication ,從上電到調(diào) CanIf_ControllerModeIndication  的時(shí)間。

根據(jù)泛亞要求首幀發(fā)出的時(shí)間100-200ms之間:

泛亞首幀發(fā)送時(shí)間要求 泛亞首幀發(fā)送時(shí)間要求

解決方法: 我感覺和 AUTOSAR 任務(wù)調(diào)度的順序及次數(shù)等有關(guān)系,因?yàn)橹皼]有買 OS 模塊,軟件寫了一個(gè)簡單的操作系統(tǒng),并且按照 RTE.C 文件中定義的 AUTOSAR的任務(wù)時(shí)間進(jìn)行順序執(zhí)行。

將 CanSM_MainFunction() 和 CanNm_MainFunction() 放在 1ms 任務(wù)中,在該任務(wù)中便于調(diào)試控制時(shí)間調(diào)用CanNm_MainFunction()函數(shù),通過在該任務(wù)內(nèi)累加計(jì)時(shí)80ms后,調(diào)用CanNm_MainFunction()。 示例代碼 示例代碼 問題描述:  當(dāng)讀診斷長幀的時(shí)候,發(fā)送 30 之后,后面長幀的數(shù)據(jù)會(huì)顯示出來,但是數(shù)據(jù)后面會(huì)自動(dòng)填充一個(gè) 01,這個(gè)是什么情況?見下圖描述:

圖示問題描述 圖示問題描述

配置如下,解決該問題:

配置1 配置1 配置2 配置2

問題描述: 模塊上電發(fā)送2幀網(wǎng)絡(luò)管理報(bào)文以及總線上沒有報(bào)文后,模塊到預(yù)休眠4S,從預(yù)休眠到休眠4S,共8秒休眠,和這些參數(shù)有關(guān)嗎?

答:有些關(guān)系的,Repeat Message Time越長發(fā)的NM報(bào)文越多。 這些參數(shù)就配置了這個(gè)8秒的時(shí)間,就是兩個(gè)4秒的配置。

按照 vector 說法,沒有解決問題,故修改配置如下: Repeat Message Time: 1500-->2000;Timeout Time:4000-->8000;Wait Bus Sleep Time: 4000-->8000,以供參考。

修改配置 修改配置

問題描述: 模塊對診斷報(bào)文不需要做DLC長度檢查,即要求:當(dāng)模塊收到診斷報(bào)文時(shí),即使診斷報(bào)文的實(shí)際數(shù)據(jù)長度<8,模塊也應(yīng)該接收此報(bào)文并按照診斷要求進(jìn)行響應(yīng)。

答:Vector: Rx P Dlc 改成 0 當(dāng)然不行了,還是要改回 8 ,其實(shí)只需要把 Rx P Dlc Check 的勾去掉就行了。 Dlc Check 一般都可以不用改。

注意: 還有一個(gè)配置比較重要,見 配置3 ,之前打電話咨詢過 vector ,應(yīng)該是配置3 這項(xiàng)配置,具體以調(diào)試結(jié)果為準(zhǔn)。

配置1 配置1 配置2 配置2 配置3 配置3

問題描述: 在總線高負(fù)載下,調(diào)試后發(fā)現(xiàn)會(huì)進(jìn)入到如下接口,文件 Det.c ,其中 MoleId = 0x3C,ErrorId = 0x46; 這里會(huì)進(jìn)入 While 循環(huán),超時(shí)后 WatchDog 導(dǎo)致產(chǎn)品 Reset 。

問題截圖 問題截圖

進(jìn)一步分析,文件 CAN.c ;發(fā)現(xiàn) CAN 控制器 Reset 后一直處于 kFlexCAN_DISABLE_MODE ,無法恢復(fù)正常通信;即使收到正確的網(wǎng)絡(luò)管理報(bào)文也無法恢復(fù)。

原因分析: While 循環(huán)是導(dǎo)致  ECU Reset  的直接原因,根本原因在于高負(fù)載應(yīng)用報(bào)文條件下,上電/ Reset 后 CAN 控制器初始化異常, FlexCAN 沒有進(jìn)入 Normal 模式,導(dǎo)致不斷的進(jìn)入 DET_reportError 中的死循環(huán)。

1、系統(tǒng)啟動(dòng),在進(jìn)行網(wǎng)絡(luò)管理報(bào)文發(fā)送,調(diào)用  CANIF_TRANSMIT  的接口時(shí)控制器處于 STOP 狀態(tài),從而導(dǎo)致系統(tǒng)進(jìn)入 DET 。

2、在新版本的代碼中由于 DEM 接口的調(diào)用在 DEM 模塊初始化之前,導(dǎo)致系統(tǒng)進(jìn)入 DET 。

解決方法:

最簡單的方法(但不是根本的方法) :把while死循環(huán)去掉,或者把Det檢測去掉,高負(fù)載的情況下確實(shí)應(yīng)該增加過濾,DET模塊僅在開發(fā)階段使用,在最終產(chǎn)品中,一般都會(huì)把DET模塊去掉。

vector提出的方法: 1、將CAN的過濾器和FULLCAN進(jìn)行配置和使用。2、在具體的 Mainfunction 調(diào)度中,將 CANSM_Mainfunction 調(diào)度放至 CANNM_Mainfunction 之前調(diào)用,并且在初次啟動(dòng)的時(shí)候?qū)?CANNM_Mainfunction 的調(diào)用做延遲處理,防止高負(fù)載的情況下 CAN 控制器處于 STOP 狀態(tài)使系統(tǒng)進(jìn)入 DET 。3、將對應(yīng)的模塊的初始化函數(shù)調(diào)用放至DEM接口使用之前,在初始化完成之后再進(jìn)行接口的調(diào)用。

配置工程,有幾個(gè)地方的配置可以優(yōu)化一下:

由于該問題跟 CAN 總線負(fù)載相關(guān),可以使用硬件過濾來降低 CPU 開銷,由于該配置中報(bào)文不多,推薦使用 FULLCAN 的過濾配置:

每個(gè)模塊的 DET 選項(xiàng)可以去掉,見下圖,如果還在查問題,可以暫時(shí)打開:

CAN 模塊的 Overrun Notification 可以設(shè)置為 None 或者 Application :

問題描述: 當(dāng)模塊出現(xiàn)了 busoff ,通過示波器測量 MCU 的 TX 腳,發(fā)現(xiàn)沒有進(jìn)行快恢復(fù)和慢恢復(fù)的動(dòng)作。

測試方法:

最簡單的測試方法: 通過將 CAN_H 和 CAN_L 短接在一起產(chǎn)生busoff, 通過示波器測量MCU的TX腳,查看是否有快恢復(fù)慢恢復(fù)的動(dòng)作。

有效測試方法: 使用 CANstress 工具,干擾模塊發(fā)送的報(bào)文,測量模塊快慢恢復(fù)時(shí)間。

打開已有的 cst 文件或打開工具新建 cst 文件:

配置1  配置1  配置2  配置2  配置3 配置3

調(diào)試方法:

vector :發(fā)生 bus-off 上層要收到 bus-off 通知才會(huì)執(zhí)行相應(yīng)的操作。在 bus-off 上層回調(diào)打個(gè)斷點(diǎn)看代碼能否執(zhí)行到。上層代碼有相應(yīng)的回調(diào)函數(shù)的配置見截圖,回調(diào)函數(shù)的: Appl_CanSM_BusOffBegin , Appl_CanSM_BusOffEnd 。

BusOff回調(diào)函數(shù)配置 BusOff回調(diào)函數(shù)配置

DEBUG調(diào)試: 產(chǎn)生  busoff   會(huì)進(jìn)入 Appl_CanSM_BusOffBegin , busoff 結(jié)束后會(huì)進(jìn)入 Appl_CanSM_BusOffEnd  接口中。

vector : CanSM_MainFunction 是處理 Bus-off 恢復(fù)的,那兩個(gè)接口函數(shù)只是通知 app 的。根據(jù)項(xiàng)目填充所需要的內(nèi)容。

目前解決方法: 我懷疑和沒有購買 OS 有關(guān)系,調(diào)換了AUTOSAR 10ms任務(wù)的執(zhí)行順序;

方法: 應(yīng)用層沒有請求 Run 模式,所以通信停止以后系統(tǒng)就休眠,只有在應(yīng)用層請求 Run 模式就可以。但在應(yīng)用層請求 Run 模式需要有 Rte 和 Davinci Developer 工具的配合,如果沒有的話只能通過修改代碼。把 Request_ESH_RunRequest_0_requestedMode 這個(gè)變量或者類似名字的變量在系統(tǒng)啟動(dòng)后置成 1 ,要休眠時(shí)置成 0 ,這樣通信停止后就不會(huì)進(jìn)休眠了。由于這個(gè)變量是個(gè)靜態(tài)變量,外部修改需要更改 BswM 模塊生成的代碼。

調(diào)試結(jié)果: 模塊初始化的時(shí)候?qū)?Request_ESH_RunRequest_0_requestedMode 設(shè)置為 1 ,然后停止發(fā)送報(bào)文,讓通信停止,模塊沒有進(jìn)入休眠,電流也正常,沒有進(jìn)入休眠。

數(shù)據(jù)ID(ID)需要在 cdd 文件中添加,配置完成 DID 后,需要導(dǎo)入配置工具(見 一、如何導(dǎo)入DBC和CDD文件 ),導(dǎo)入之后,打開配置工具,如下:

DTC 需要在 cdd 文件中添加,配置完成  DTC  后,需要導(dǎo)入配置工具(見 一、如何導(dǎo)入DBC和CDD文件 ),導(dǎo)入之后,打開配置工具,如下:

如何判斷系統(tǒng)負(fù)載,包括cpu,內(nèi)存,io設(shè)備等

可以用TOP工具查看實(shí)時(shí)狀態(tài)。

top進(jìn)入視圖:

第一行:10:01:23 當(dāng)前系統(tǒng)時(shí)間126 days, 14:29 系統(tǒng)已經(jīng)運(yùn)行了126天14小時(shí)29分鐘(在這期間沒有重啟過)2 users 當(dāng)前有2個(gè)用戶登錄系統(tǒng)load average: 1.15, 1.42, 1.44 load average后面的三個(gè)數(shù)分別是1分鐘、5分鐘、15分鐘的負(fù)載情況。

load average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù),然后按特定算法計(jì)算出的數(shù)值。如果這個(gè)數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了。 第二行:Tasks 任務(wù)(進(jìn)程),系統(tǒng)現(xiàn)在共有183個(gè)進(jìn)程,其中處于運(yùn)行中的有1個(gè),182個(gè)在休眠(sleep),stoped狀態(tài)的有0個(gè),zombie狀態(tài)(僵尸)的有0個(gè)。 第三行:cpu狀態(tài)6.7% us 用戶空間占用CPU的百分比。0.4% sy 內(nèi)核空間占用CPU的百分比。0.0% ni 改變過優(yōu)先級的進(jìn)程占用CPU的百分比92.9% id 空閑CPU百分比0.0% wa IO等待占用CPU的百分比0.0% hi 硬中斷(Hardware IRQ)占用CPU的百分比0.0% si 軟中斷(Software Interrupts)占用CPU的百分比

第四行:內(nèi)存狀態(tài)8306544k total 物理內(nèi)存總量(8GB)7775876k used 使用中的內(nèi)存總量(7.7GB)530668k free 空閑內(nèi)存總量(530M)79236k buffers 緩存的內(nèi)存量 (79M) 第五行:swap交換分區(qū)2031608k total 交換區(qū)總量(2GB)2556k used 使用的交換區(qū)總量(2.5M)2029052k free 空閑交換區(qū)總量(2GB)4231276k cached 緩沖的交換區(qū)總量(4GB)

cpu負(fù)載是指的是什么?

AIX 全名為(Advanced Interactive Executive),它是IBM 公司的Unix操作系統(tǒng),

整個(gè)系統(tǒng)的設(shè)計(jì)從網(wǎng)絡(luò)、主機(jī)硬件系統(tǒng),到操作系統(tǒng)完全遵守開放系統(tǒng)的原則。

下面對AIX 作以介紹。

RS/6000 采用IBM 的UNIX操作系統(tǒng)-AIX作為其操作系統(tǒng)。這是一

個(gè)目前操作系統(tǒng)界最成功,應(yīng)用領(lǐng)域最廣,最開放的第二代的UNIX系

統(tǒng)。它特別適合于做關(guān)鍵數(shù)據(jù)處理(CRITICAL)。

AIX 包含了許多IBM 大型機(jī)傳統(tǒng)受歡迎的特征,如系統(tǒng)完整性,系統(tǒng)可管理

性和系統(tǒng)可用性。

在 AIX 操作系統(tǒng)上,有許多的數(shù)據(jù)庫和開發(fā)工具,用戶除了選用已有的應(yīng)用

軟件外,還可以根據(jù)各自的需要進(jìn)行開發(fā)。

此外,在AIX 之上,有一組功能強(qiáng),使用方便的系統(tǒng)管理工具。對于異種平臺(tái)

互存,互操作有很成熟的解決方案。

由于該 UNIX 的先進(jìn)的內(nèi)核技術(shù)和最好的開放性,因此,雖然RS/6000

從宣布到今天只有短短的5 年多的時(shí)間,它已在各行各業(yè)有了廣泛的運(yùn)用,

并在1993和1994年連續(xù)二年在MIDRANGE商用 UNIX 領(lǐng)域處于第一位。

RISC SYSTEM/6000的操作系統(tǒng)是AIX ,它是性能卓越的、開放的

UNIX,匯集了多年來計(jì)算機(jī)界在UNIX上的研究成果,以IBM 在計(jì)算機(jī)

體系結(jié)構(gòu)、操作系統(tǒng)方面40多年極其豐富的經(jīng)驗(yàn)。最大限度的使用RISC

技術(shù),安裝了象AIX 這樣的具備工業(yè)界實(shí)力的UNIX操作系統(tǒng)。

它既可連接SAA 體系結(jié)構(gòu),又能與非IBM 系統(tǒng)的網(wǎng)絡(luò)相連,因此,可以

和多數(shù)專業(yè)銀行現(xiàn)有的系統(tǒng)實(shí)現(xiàn)互連,這對今后業(yè)務(wù)系統(tǒng)拓展將帶來極大的

靈活性,并降低投資。

AIX 遵循一系列的國際標(biāo)準(zhǔn):

* IEEE POSIX1004.1-1990

* X/OPEN 移植指南ISSUE3的基本級(XPG3)

* AES/OS REVISION A (OSF/1 LEVEL 2 資格)

* FIPS 151-1

* AIX的編譯器: XLC、C++(可選)、FORTRAN(可選)、PASCAL(可選)、COBOL(可選)

* ADA 的編譯器已達(dá)到XPG3“成員”級的認(rèn)可。

* AIX 支持多用戶、多任務(wù)。

AIX有一些其它特性包括:

AIX 提供了3 種SHELL :SYSTEM V的KORN、BOURNE SHELL和4.3BSDC

SHELL作為可選擇的UNIX系統(tǒng)界面;

安全設(shè)施滿足TCB (Trusted Computing Base)的C2級;

實(shí)時(shí)處理能力,這對于“面向交易”的應(yīng)用至關(guān)重要(如零售業(yè)

和銀行等),它使RS/6000 獲得極高的響應(yīng)和吞吐量;

虛擬存儲(chǔ)管理,當(dāng)需要時(shí),可將一些不常用的模塊轉(zhuǎn)送至外存,

提高內(nèi)存的可利用性。

先進(jìn)的文件系統(tǒng),使得系統(tǒng)管理更加有效,并提高了數(shù)據(jù)可靠性

以及完整性。

能兼容Dos 應(yīng)用程序和數(shù)據(jù)。

InfoExplorer,快速信息超文本索引系統(tǒng)- 不僅包括文字,而且

對包含聲音、圖像的索引系統(tǒng),這是個(gè)聯(lián)機(jī)的文件接口。包括全部的

超文本的索引和查找,以及面向任務(wù)和坐標(biāo)的多重導(dǎo)引和索引系統(tǒng)。

這個(gè)文字及圖形索引系統(tǒng)以一個(gè)靈活的、基于任務(wù)的方式去使用詳細(xì)

資料及培訓(xùn)資料。

高級系統(tǒng)管理工具(SMIT,System Management Interface Tool)。

提供一級菜單驅(qū)動(dòng)程序,諸如完成軟件的安裝與設(shè)置、設(shè)備的設(shè)置及

管理、問題的測定、存貯管理等??梢宰詣?dòng)地進(jìn)行I/O 設(shè)備設(shè)置,

ASCII 終端也可充當(dāng)系統(tǒng)控制臺(tái)。在LAN 上可以進(jìn)行遠(yuǎn)程系統(tǒng)的安裝。

系統(tǒng)工作負(fù)載

系統(tǒng)工作負(fù)載的完整準(zhǔn)確的定義對于預(yù)測或理解它的性能是很關(guān)鍵的。在衡量系統(tǒng)性能時(shí),工作負(fù)載的不同可能會(huì)比 CPU 時(shí)鐘速度或隨機(jī)訪問存儲(chǔ)器(RAM)大小不同帶來更多的變化。工作負(fù)載的定義不僅必須包含向系統(tǒng)發(fā)送的請求的類型和速率,還要包含將要執(zhí)行的確切軟件包和內(nèi)部應(yīng)用程序。

包括系統(tǒng)將在后臺(tái)處理的工作也很重要。例如,如果一個(gè)系統(tǒng)包含通過 NFS 加載且由其它系統(tǒng)頻繁訪問的文件系統(tǒng),那么處理那些訪問很可能是總體工作負(fù)載中非常重要的一部分,即使該系統(tǒng)不是正式的服務(wù)器也是如此。

已進(jìn)行標(biāo)準(zhǔn)化從而允許在不同系統(tǒng)之間進(jìn)行比較的工作負(fù)載稱為基準(zhǔn)程序。但是,很少有實(shí)際的工作負(fù)載能完全符合基準(zhǔn)程序的精確算法和環(huán)境。即使是那些最初從實(shí)際的應(yīng)用程序發(fā)展而來的行業(yè)標(biāo)準(zhǔn)基準(zhǔn)程序也已經(jīng)過簡化和均勻化,從而使它們可移植到大量的硬件平臺(tái)上。使用行業(yè)標(biāo)準(zhǔn)基準(zhǔn)程序唯一有效的方法是減小將接受嚴(yán)肅評估的候選系統(tǒng)的范圍。因此,在嘗試?yán)斫庀到y(tǒng)的工作負(fù)載和性能時(shí)不應(yīng)該只依賴基準(zhǔn)測試結(jié)果。

可以將工作負(fù)載分為以下類別:

多用戶

由多個(gè)用戶通過各自的終端提交的工作組成的工作負(fù)載。通常,這種工作負(fù)載的性能目標(biāo)有兩種可能,即在保留指定的最壞情況響應(yīng)時(shí)間條件下最大化系統(tǒng)吞吐量,或者對于固定不變的工作負(fù)載獲得盡可能快的響應(yīng)時(shí)間。

服務(wù)器

由來源于其它系統(tǒng)的請求組成的工作負(fù)載。例如,文件服務(wù)器的工作負(fù)載主要是磁盤讀寫請求。它是多用戶工作負(fù)載(加上 NFS 或其它 I/O 活動(dòng))的磁盤 I/O 部分,所以適用同樣的目標(biāo),即在給定的相應(yīng)時(shí)間下最大化吞吐量。其它的服務(wù)器工作負(fù)載由諸如數(shù)學(xué)計(jì)算密集的程序、數(shù)據(jù)庫事務(wù)、打印機(jī)作業(yè)之類的項(xiàng)組成。

工作站

由單獨(dú)的用戶通過鍵盤提交工作和在該系統(tǒng)的顯示器上接收結(jié)果組成的工作負(fù)載。通常這種工作負(fù)載的最高優(yōu)先級性能目標(biāo)是使用戶請求的響應(yīng)時(shí)間最短。

性能目標(biāo)

在定義了系統(tǒng)必須處理的工作負(fù)載后,可以選擇性能標(biāo)準(zhǔn)并根據(jù)這些標(biāo)準(zhǔn)設(shè)定性能目標(biāo)。計(jì)算機(jī)系統(tǒng)的總體性能標(biāo)準(zhǔn)是響應(yīng)時(shí)間和吞吐量。

響應(yīng)時(shí)間是提交請求和返回該請求的響應(yīng)之間使用的時(shí)間。示例包括:

數(shù)據(jù)庫查詢花費(fèi)的時(shí)間

將字符回顯到終端上花費(fèi)的時(shí)間

訪問 Web 頁面花費(fèi)的時(shí)間

吞吐量是對單位時(shí)間內(nèi)完成的工作量的量度。示例包括:

每分鐘的數(shù)據(jù)庫事務(wù)

每秒傳送的文件千字節(jié)數(shù)

每秒讀或?qū)懙奈募ё止?jié)數(shù)

每分鐘的 Web 服務(wù)器命中數(shù)

這些度量之間的關(guān)系很復(fù)雜。有時(shí)可能以響應(yīng)時(shí)間為代價(jià)而得到較高的吞吐量,而有時(shí)候又要以吞吐量為代價(jià)得到較好的響應(yīng)時(shí)間。在其它情況下,一個(gè)單獨(dú)的更改可能對兩者都有提高??山邮艿男阅芑诤侠淼耐掏铝颗c合理的響應(yīng)時(shí)間相結(jié)合。

在規(guī)劃或調(diào)諧任何系統(tǒng)中,當(dāng)處理特定的工作負(fù)載時(shí)一定要保證對響應(yīng)時(shí)間和吞吐量都有明確的目標(biāo)。否則,有可能存在一種風(fēng)險(xiǎn),那就是您花費(fèi)了分析時(shí)間和物力改善的僅僅是系統(tǒng)性能中一個(gè)次要的方面。

程序執(zhí)行模型

為了清楚地檢查工作負(fù)載的性能特征,需要有一個(gè)動(dòng)態(tài)而非靜態(tài)的程序執(zhí)行模型,如下圖所示。

圖 1. 程序執(zhí)行層次結(jié)構(gòu). 該圖形以一個(gè)三角形為基礎(chǔ)。左邊代表和右邊適當(dāng)?shù)牟僮飨到y(tǒng)實(shí)體匹配的硬件實(shí)體。程序必須從存儲(chǔ)在磁盤上的最低級別開始,到最高級別的處理器運(yùn)行程序指令。例如,從底部到頂部,磁盤硬件實(shí)體容納可執(zhí)行程序;實(shí)內(nèi)存容納等待的操作系統(tǒng)線程和中斷處理程序;轉(zhuǎn)換后備緩沖區(qū)容納可分派的結(jié)程;高速緩存中包含當(dāng)前分派的線程和處理器流水線;而寄存器中包含當(dāng)前的指令。

程序?yàn)榱诉\(yùn)行必須沿著硬件和操作系統(tǒng)層次結(jié)構(gòu)并行向上前進(jìn)。硬件層次結(jié)構(gòu)中的每個(gè)元素都比它下面的元素稀少和昂貴。不僅程序不得不為了每個(gè)資源和其它程序競爭,而且從一個(gè)級別過渡到下一級別也要花時(shí)間。為了理解程序執(zhí)行動(dòng)態(tài),需要對層次結(jié)構(gòu)中每一級別有個(gè)基本的了解。

硬件層次結(jié)構(gòu)

通常,從一個(gè)硬件級別移動(dòng)到另一級別所需要的時(shí)間主要由較低級別的等待時(shí)間(從發(fā)出請求到接受到第一批數(shù)據(jù)的時(shí)間)組成。

固定磁盤

對于一個(gè)在單機(jī)系統(tǒng)中運(yùn)行的程序而言,最慢的操作是從磁盤上取得代碼或數(shù)據(jù),這是因?yàn)橛邢铝性颍?

必須引導(dǎo)磁盤控制器直接訪問指定的塊(排隊(duì)延遲)。

磁盤臂必須尋道以找到正確的柱面(尋道等待時(shí)間)。

讀/寫磁頭必須等候直到正確的塊旋轉(zhuǎn)到它們下面(旋轉(zhuǎn)等待時(shí)間)。

數(shù)據(jù)必須傳送到控制器(傳送時(shí)間)然后傳遞到應(yīng)用程序中(中斷處理時(shí)間)。

除了程序中顯式的讀或?qū)懻埱笠酝猓€有許多原因?qū)е麓疟P操作緩慢。頻繁的系統(tǒng)調(diào)諧活動(dòng)證明是不必要地跟蹤了磁盤 I/O。

實(shí)內(nèi)存

實(shí)內(nèi)存通常稱為隨機(jī)存取存儲(chǔ)器或 RAM,它比磁盤速度快,但每個(gè)字節(jié)的開銷非常昂貴。操作系統(tǒng)盡量只把當(dāng)前使用的代碼和數(shù)據(jù)保存在 RAM 中,而把任何額外的內(nèi)容存儲(chǔ)在磁盤上,或者決不首先把它們帶入 RAM 中。

然而,RAM 的速度不一定比處理器快。通常在硬件意識到 RAM 訪問需求與處理器可使用數(shù)據(jù)或指令的時(shí)間之間,會(huì)出現(xiàn)許多處理器周期的 RAM 等待時(shí)間。

如果要訪問存儲(chǔ)到磁盤上(或者尚未調(diào)進(jìn))的某一虛擬內(nèi)存頁,則會(huì)產(chǎn)生一個(gè)缺頁故障,并且程序的執(zhí)行暫掛直到該頁從磁盤讀取。

轉(zhuǎn)換后備緩沖區(qū)(TLB)

使程序員不會(huì)受限于系統(tǒng)的物理局限性的方法是實(shí)現(xiàn)虛擬內(nèi)存。程序員在設(shè)計(jì)和編寫程序時(shí)認(rèn)為內(nèi)存非常大,系統(tǒng)將負(fù)責(zé)將程序中指令和數(shù)據(jù)的虛擬地址轉(zhuǎn)換成需要用來從 RAM 取得的指令和數(shù)據(jù)的實(shí)際地址。因?yàn)檫@個(gè)地址轉(zhuǎn)換過程可能很費(fèi)時(shí),系統(tǒng)將最近訪問過的虛擬內(nèi)存頁的實(shí)際地址保存在一個(gè)叫轉(zhuǎn)換后備緩沖區(qū)(TLB)的高速緩存中。

只要運(yùn)行中的程序繼續(xù)訪問程序和數(shù)據(jù)頁中的一小部分,則完整的從虛擬到實(shí)際頁地址的轉(zhuǎn)換過程就不需要在每次 RAM 訪問的時(shí)候都重做一次。當(dāng)程序試圖訪問的虛擬內(nèi)存頁沒有 TLB 入口(即 TLB 未命中)時(shí),則需要大量的處理器周期(即 TLB 未命中等待時(shí)間)來進(jìn)行地址轉(zhuǎn)換。

高速緩存

為了將程序必須經(jīng)歷的 RAM 等待時(shí)間減到最小,系統(tǒng)為指令和數(shù)據(jù)組織了高速緩存。如果所需的指令和數(shù)據(jù)已在高速緩存中,則產(chǎn)生高速緩存命中,處理器就可在下一個(gè)周期立刻使用該指令或數(shù)據(jù)。否則產(chǎn)生高速緩存未命中,伴隨有 RAM 等待時(shí)間。

在某些系統(tǒng)中,有兩到高速緩存,通常稱它們?yōu)?L1、L2 和 L3。如果一個(gè)特殊的存儲(chǔ)器引用導(dǎo)致 L1 未命中,則檢查 L2。如果 L2 產(chǎn)生未命中,則引用轉(zhuǎn)至下一個(gè)級別,要么是 L3(如果存在),要么是 RAM。

高速緩存的大小和結(jié)構(gòu)根據(jù)型號的不同而有不同,但是有效使用它們的原理是相同的。

流水線和寄存器

流水線型超標(biāo)量體系結(jié)構(gòu)使得在某些情況下可以同時(shí)處理多個(gè)指令。大批的通用寄存器和浮點(diǎn)寄存器使得可以將相當(dāng)多的程序數(shù)據(jù)保存在寄存器中,而不需要頻繁存儲(chǔ)和重新裝入。

可以設(shè)計(jì)優(yōu)化編譯器最大限度地利用這些能力。當(dāng)生成產(chǎn)品程序時(shí),無論程序有多小編譯器的優(yōu)化函數(shù)都應(yīng)該能使用。Optimization and Tuning Guide for XL Fortran, XL C and XL C++ 中描述了如何將程序調(diào)諧到最大性能。

軟件層次結(jié)構(gòu)

程序?yàn)榱诉\(yùn)行還必須逐步執(zhí)行軟件層次結(jié)構(gòu)中的一系列步驟。

可執(zhí)行程序

當(dāng)請求運(yùn)行某個(gè)程序時(shí),操作系統(tǒng)執(zhí)行一些操作以將磁盤上的可執(zhí)行程序轉(zhuǎn)換成運(yùn)行中的程序。首先,必須掃描當(dāng)前 PATH 環(huán)境變量中的目錄以查找程序的正確副本。然后,系統(tǒng)裝入程序(不要和 ld 命令混淆,該命令是個(gè)綁定程序)必須解析出從程序到共享庫的任何外部引用。

為了表示用戶的請求,操作系統(tǒng)將創(chuàng)建一個(gè)進(jìn)程或一組資源(例如專用虛擬地址段),任何運(yùn)行中的程序都需要該進(jìn)程或資源。

操作系統(tǒng)也會(huì)在該進(jìn)程中自動(dòng)創(chuàng)建一個(gè)單獨(dú)的線程。線程是一個(gè)單獨(dú)程序?qū)嵗漠?dāng)前執(zhí)行狀態(tài)。在 AIX 中,對處理器和其它資源的訪問是根據(jù)線程來分配而不是根據(jù)進(jìn)程分配的。應(yīng)用程序可在一個(gè)進(jìn)程中創(chuàng)建多個(gè)線程。這些線程共享由運(yùn)行它們的進(jìn)程所擁有的資源。

最后,系統(tǒng)轉(zhuǎn)移到程序的入口點(diǎn)。如果包含入口點(diǎn)的程序頁還不在內(nèi)存中(可能因?yàn)槌绦蜃罱啪幾g、執(zhí)行和復(fù)制),則由它引起的缺頁故障中斷將該頁從它的后備存儲(chǔ)器中讀取出來。

中斷處理程序

通知操作系統(tǒng)發(fā)生了外部事件的機(jī)制是中斷當(dāng)前運(yùn)行線程并將控制轉(zhuǎn)移到中斷處理程序。在中斷處理程序可以運(yùn)行之前,必須保存足夠的硬件狀態(tài)以保證在中斷處理完成后系統(tǒng)能恢復(fù)線程的上下文。新調(diào)用的中斷處理程序?qū)⒔?jīng)歷在硬件層次結(jié)構(gòu)中上移帶來的所有延遲(除了頁面故障)。如果該中斷處理程序最近沒有運(yùn)行過(或者中間程序很節(jié)約時(shí)間),那么它的任何代碼或數(shù)據(jù)不太可能保留在 TLB 或高速緩存中。

當(dāng)再次調(diào)度已中斷的線程時(shí),它的執(zhí)行上下文(如寄存器內(nèi)容)邏輯上將得到恢復(fù),以便它可以正確運(yùn)行。然而,TLB 和高速緩存的內(nèi)容必須根據(jù)程序的后繼請求重新構(gòu)造。因此,作為中斷的結(jié)果,中斷處理程序和被中斷的線程都可能遇到大量的高速緩存未命中和 TLB 未命中延遲。

等待線程

無論何時(shí)只要執(zhí)行的程序發(fā)出不能立刻滿足的請求,例如同步 I/O 操作(顯式的或缺頁故障的結(jié)果),該線程就會(huì)處于等待狀態(tài),直到請求完成為止。除了請求本身所需的時(shí)間以外,通常這還會(huì)導(dǎo)致另外一些 TLB 和高速緩存的延遲時(shí)間。

可分派線程

當(dāng)某個(gè)線程可分派但不在運(yùn)行時(shí),它不能完成任何有用的事情。更糟的是,正運(yùn)行的其它線程可能導(dǎo)致重新使用該線程的高速緩存線路并將實(shí)內(nèi)存頁收回,從而引起最終分派時(shí)出現(xiàn)更多的延遲。

當(dāng)前已分派的線程

調(diào)度程序選擇對使用處理器有強(qiáng)烈要求的線程。在『CPU 調(diào)度程序性能概述』中討論了影響該項(xiàng)選擇需要考慮的事項(xiàng)。當(dāng)分派線程后,處理器的邏輯狀態(tài)恢復(fù)成線程中斷時(shí)有效的狀態(tài)。

當(dāng)前的機(jī)器指令

如果未出現(xiàn) TLB 或高速緩存未命中的情況,絕大多數(shù)機(jī)器指令都能在單個(gè)處理器周期內(nèi)執(zhí)行。相比之下,如果程序迅速轉(zhuǎn)換到該程序的不同區(qū)域且訪問大量不同區(qū)域中的數(shù)據(jù),就會(huì)產(chǎn)生較高的 TLB 和高速緩存未命中率,執(zhí)行每條指令使用的平均處理器周期數(shù)(CPI)可能大于 1。這種程序被認(rèn)為有較差的局域性引用能力。它也許在使用必需的最少指令數(shù)來做這個(gè)工作,但是要消耗大量不必要的周期數(shù)。部分是因?yàn)橹噶顢?shù)和周期數(shù)之間相關(guān)性較弱,檢查程序列表來計(jì)算路徑長度不會(huì)再直接產(chǎn)生一個(gè)時(shí)間值。由于較短的路徑通常比較長的路徑快,所以速率根據(jù)路徑長度率的不同而明顯不同。

編譯器用完善的方法重新安排代碼從而將程序執(zhí)行所需的周期數(shù)降到最小。追求最佳性能的程序員必須首先致力于確保編譯器具有有效優(yōu)化代碼所需的全部信息,而不是試圖事后批評編譯器的優(yōu)化技術(shù)(請參閱『預(yù)處理器和編譯器的有效使用』)。優(yōu)化有效性的實(shí)際衡量標(biāo)準(zhǔn)是可信工作負(fù)載的性能。

系統(tǒng)調(diào)諧

在有效實(shí)現(xiàn)應(yīng)用程序后,系統(tǒng)總體性能的進(jìn)一步提高就成了系統(tǒng)調(diào)諧考慮的一個(gè)問題。系統(tǒng)級調(diào)諧包含的主要組件有:

通信 I/O

取決于工作負(fù)載的類型與通信鏈路的類型,可能需要調(diào)諧以下的一個(gè)或多個(gè)通信設(shè)備驅(qū)動(dòng)程序:TCP/IP 或 NFS。

固定磁盤

邏輯卷管理器(LVM)控制文件系統(tǒng)的位置和磁盤上調(diào)頁空間,這可能會(huì)極大地影響系統(tǒng)經(jīng)歷的尋道等待時(shí)間。磁盤設(shè)備驅(qū)動(dòng)程序控制執(zhí)行 I/O 請求所遵從的順序。

實(shí)內(nèi)存

虛擬內(nèi)存管理器(VMM)控制空閑實(shí)內(nèi)存幀的池,并決定何時(shí)從何處取用幀來補(bǔ)充該池。

運(yùn)行線程

調(diào)度程序確定接下來由哪個(gè)可調(diào)度實(shí)體接收控制權(quán)。在 AIX 中,可調(diào)度實(shí)體是線程。請參閱『線程支持』。

性能調(diào)諧過程介紹

性能調(diào)諧主要是資源管理問題和正確的系統(tǒng)參數(shù)設(shè)置。調(diào)諧工作負(fù)載和系統(tǒng)以有效利用資源由下列步驟組成:

識別系統(tǒng)中的工作負(fù)載

設(shè)置目標(biāo):

確定如何評測結(jié)果

量化目標(biāo)和區(qū)分目標(biāo)的優(yōu)先級

識別系統(tǒng)性能的關(guān)鍵資源

最小化工作負(fù)載的關(guān)鍵資源要求:

如果可選擇的話,使用最適當(dāng)?shù)馁Y源

減少個(gè)別程序或系統(tǒng)函數(shù)對關(guān)鍵資源的要求

結(jié)構(gòu)化資源的并行使用

修改資源的分配以反映優(yōu)先級

更改個(gè)別程序的優(yōu)先級或資源

更改系統(tǒng)資源管理參數(shù)的設(shè)置

重復(fù)步驟 3 到步驟 5 直到滿足目標(biāo)(或者資源飽和)

如果必要的話,使用其它資源

在系統(tǒng)性能管理的每個(gè)階段都有相應(yīng)的工具(參閱附錄 A 『監(jiān)視和調(diào)諧命令和子例程』)。這些工具有些可從 IBM 得到;另一些是第三方產(chǎn)品。下圖說明在一個(gè)簡單的 LAN 環(huán)境中性能管理的各階段。

圖 2. 性能階段. 該圖用五個(gè)加權(quán)的圓圈說明對系統(tǒng)性能調(diào)諧的各步驟:規(guī)劃、安裝、監(jiān)視、調(diào)諧和擴(kuò)展。每個(gè)圓圈代表系統(tǒng)處于不同的性能狀態(tài):空閑、不均衡、均衡和過載。實(shí)質(zhì)上就是擴(kuò)展一個(gè)過載的系統(tǒng)、調(diào)諧系統(tǒng)直到它是均衡的、監(jiān)視不均衡的系統(tǒng)并且在需要擴(kuò)展時(shí)安裝更多的資源。

識別工作負(fù)載

系統(tǒng)執(zhí)行的所有工作都必須能夠識別。特別是在 LAN 連接的系統(tǒng)中,通過系統(tǒng)的用戶之間僅有的非正式協(xié)議,可以輕松地開發(fā)出一組復(fù)雜的交叉安裝的文件系統(tǒng)。這些文件系統(tǒng)必須被識別出來并作為任何調(diào)諧活動(dòng)的一部分進(jìn)行考慮。

對于多用戶工作負(fù)載,分析員必須量化一般情況和高峰期的請求率。確定用戶實(shí)際與終端交互時(shí)間的實(shí)際比例也是很重要的。

該識別階段中的一個(gè)要素是決定必須對生產(chǎn)系統(tǒng)進(jìn)行評估和調(diào)諧活動(dòng),還是在另一系統(tǒng)上(或“切換”)用實(shí)際工作負(fù)載的模擬型式來完成評估和調(diào)諧活動(dòng)。分析員必須針對非生產(chǎn)環(huán)境的靈活性權(quán)衡來自于生產(chǎn)環(huán)境結(jié)果的較大可靠性,分析員可在非生產(chǎn)環(huán)境中進(jìn)行試驗(yàn),當(dāng)然試驗(yàn)所冒的風(fēng)險(xiǎn)是性能下降或更糟。

設(shè)置目標(biāo)的重要性

雖然可以根據(jù)可測數(shù)量設(shè)置目標(biāo),但實(shí)際希望的結(jié)果往往帶有主觀性,比如令人滿意的響應(yīng)時(shí)間。進(jìn)一步講,分析員必須抵擋住調(diào)諧可測量的東西而不是對他而言是重要東西的。如果沒有系統(tǒng)提供的評估能符合所要求的改進(jìn),那么就必須對該評估進(jìn)行設(shè)計(jì)。

量化目標(biāo)最有價(jià)值的方面不是選擇達(dá)到的數(shù)字,而是對(通常)多個(gè)目標(biāo)的相對重要性進(jìn)行公開判定。如果這些優(yōu)先級沒有事先設(shè)定且不是每個(gè)相關(guān)的人都理解的話,分析員在沒有進(jìn)行頻繁咨詢之前不能作出任何折衷的決定。分析員還容易對用戶的反應(yīng)或管理性能中一些已經(jīng)被忽略的方面而感到吃驚。如果系統(tǒng)的支持和使用跨過了組織的邊界,您可能需要供應(yīng)商和用戶之間的書面服務(wù)級協(xié)議,可確保對性能目標(biāo)和優(yōu)先級有一個(gè)清楚而共同的理解。

識別關(guān)鍵資源

通常,給定工作負(fù)載的性能可由一兩種關(guān)鍵系統(tǒng)資源的可用性和速度決定。分析員必須正確識別出那些資源,否則會(huì)冒險(xiǎn)陷入無休止的嘗試出錯(cuò)操作。

系統(tǒng)具有物理資源和邏輯資源。關(guān)鍵的物理資源通常比較容易識別,因?yàn)檩^多的系統(tǒng)性能工具可用來評估物理資源的利用率。通常最影響性能的物理資源如下:

CPU 周期

內(nèi)存

I/O 總線

不同的適配器

磁盤臂

磁盤空間

網(wǎng)絡(luò)訪問

邏輯資源不太容易識別。邏輯資源通常是對物理資源進(jìn)行分區(qū)的編程抽象。進(jìn)行分區(qū)的目的是共享和管理物理資源。

構(gòu)建于其上的物理資源和邏輯資源的一些示例如下:

CPU

處理器時(shí)間片

內(nèi)存

頁面幀

堆棧

緩沖區(qū)

隊(duì)列

鎖和信號量

磁盤空間

邏輯卷

文件系統(tǒng)

文件

分區(qū)

網(wǎng)絡(luò)訪問

會(huì)話

信息包

通道

了解邏輯資源和物理資源是很重要的。因?yàn)槿鄙龠壿嬞Y源線程可能阻塞,就像因?yàn)槿鄙傥锢碣Y源而阻塞一樣,擴(kuò)展下層物理資源未必能保證創(chuàng)建附加的邏輯資源。例如,考慮使用 NFS 塊 I/O 守護(hù)程序 biod??蛻魴C(jī)上的一個(gè) biod 守護(hù)程序要求處理每個(gè)暫掛的 NFS 遠(yuǎn)程 I/O 請求。因此,biod 守護(hù)程序的數(shù)量了能同時(shí)運(yùn)行的 NFS I/O 操作的數(shù)量。當(dāng)缺少 biod 守護(hù)程序時(shí),系統(tǒng)檢測會(huì)指示 CPU 和通信鏈路只使用了很少一部分。您可能有系統(tǒng)未充分利用(并且很慢)的假象,事實(shí)上這時(shí)是因?yàn)槿鄙?biod 守護(hù)程序從而了其余的資源。biod 守護(hù)程序使用處理器周期和內(nèi)存,但您不能簡單地通過添加實(shí)內(nèi)存或?qū)⑺D(zhuǎn)移到一個(gè)更快的 CPU 上來修正這個(gè)問題。解決方案是創(chuàng)建更多的邏輯資源(biod 守護(hù)程序)。

在應(yīng)用程序開發(fā)過程中可能不經(jīng)意間創(chuàng)建邏輯資源和瓶頸。傳遞數(shù)據(jù)或控制設(shè)備的方法可以有效地創(chuàng)建一個(gè)邏輯資源。當(dāng)偶然創(chuàng)建這樣的資源時(shí),通常沒有工具可監(jiān)視它們的使用,也沒有接口控制它們的分配。它們的存在可能不會(huì)引起重視,直到某個(gè)特定性能問題出現(xiàn)時(shí)就會(huì)突出它們的重要性。

最小化關(guān)鍵資源要示

下面討論在三個(gè)級別上考慮最小化工作負(fù)載的關(guān)鍵資源要求。

使用適當(dāng)?shù)馁Y源

決定在一個(gè)資源上使用另一個(gè)資源時(shí)應(yīng)該理智地考慮并且頭腦中要有明確的目標(biāo)。在應(yīng)用程序開發(fā)過程中有一個(gè)選擇資源的示例,即通過增加內(nèi)存消耗來減少 CPU 的消耗來達(dá)到一個(gè)平衡。用于演示資源選擇的公共的系統(tǒng)配置決策為:是將文件放置在單獨(dú)的本地工作站上,還是放置在遠(yuǎn)程服務(wù)器上。

減少關(guān)鍵資源的要求

對于本地開發(fā)的應(yīng)用程序,可用多種方法檢查程序以便其更有效地執(zhí)行相同的功能或除去不需要的功能。在系統(tǒng)管理級別上,爭用關(guān)鍵資源的低優(yōu)先級工作負(fù)載可以移動(dòng)到其它系統(tǒng)中、在其它時(shí)間運(yùn)行或由“工作負(fù)載管理器”控制。

結(jié)構(gòu)化資源的并行使用

因?yàn)楣ぷ髫?fù)載需要運(yùn)行多個(gè)系統(tǒng)資源,從而可以利用這樣的事實(shí),即資源是的且可以并行使用。例如,操作系統(tǒng)預(yù)讀算法檢測到程序在順序訪問文件的事實(shí),因此它調(diào)度并行執(zhí)行的其它順序讀取操作,同時(shí)應(yīng)用程序還處理先前的數(shù)據(jù)。并行也用于系統(tǒng)管理。例如,如果某個(gè)應(yīng)用程序同時(shí)訪問兩個(gè)或多個(gè)文件且如果同時(shí)訪問的這些文件存放在不同的驅(qū)動(dòng)器上,那么添加一個(gè)額外的磁盤驅(qū)動(dòng)器可能會(huì)提高磁盤 I/O 的速率。

資源分配優(yōu)先級

操作系統(tǒng)提供了一些方法來區(qū)分活動(dòng)的優(yōu)先級。有些在系統(tǒng)級別上設(shè)置,比如磁盤調(diào)步。其它的例如進(jìn)程優(yōu)先級可由單個(gè)用戶設(shè)置以反映連接到特定任務(wù)上的重要性。

重復(fù)調(diào)諧步驟

性能分析的一個(gè)公認(rèn)的真理是接下來總有瓶頸出現(xiàn)。減少某個(gè)資源的使用意味著另一資源了吞吐量或響應(yīng)時(shí)間。例如,假設(shè)我們的系統(tǒng)中有下列的利用率級別:

CPU:90% 磁盤:70% 內(nèi)存:60%

這個(gè)工作負(fù)載是 CPU 受限的。如果成功的調(diào)諧工作負(fù)載使得 CPU 負(fù)載從 90% 降到 45%,則可望在性能上有兩倍的改善。不幸的是現(xiàn)在的工作負(fù)載是 I/O 受限的,它有下列的近似利用率:

CPU:45% 磁盤:90% 內(nèi)存:60%

改善后的 CPU 利用率允許程序立刻提交磁盤請求,但接下來我們會(huì)受到由磁盤驅(qū)動(dòng)器的容量施加的。性能改善也許是 30% 而不是預(yù)期的 100%。

總是存在一個(gè)新的關(guān)鍵資源。重要的問題是使用手邊的資源是否已經(jīng)滿足性能目標(biāo)。

注意: 用 vmtune、schedtune 和其它調(diào)諧命令產(chǎn)生的不正當(dāng)系統(tǒng)調(diào)諧可能導(dǎo)致意外的系統(tǒng)行為,例如降低系統(tǒng)或應(yīng)用程序的性能或系統(tǒng)暫停。更改僅應(yīng)在性能分析識別出瓶頸時(shí)才適用。

注:

對于性能相關(guān)的調(diào)諧設(shè)置,不存在什么一般建議。

應(yīng)用額外的資源

在前述所有的方法都用盡后如果系統(tǒng)性能仍不能滿足它的目標(biāo),則必須增強(qiáng)或擴(kuò)展關(guān)鍵資源。如果關(guān)鍵資源是邏輯資源且下層物理資源足夠,則無需額外代價(jià)就可以擴(kuò)展邏輯資源。如果關(guān)鍵資源是物理資源,分析員必須研究一些額外的問題:

必須增強(qiáng)或擴(kuò)展關(guān)鍵資源到什么程度才可以終止瓶頸?

系統(tǒng)性能會(huì)滿足它的目標(biāo)嗎?或另外的資源會(huì)首先飽和嗎?

如果有一串關(guān)鍵資源的話,增強(qiáng)或擴(kuò)展所有這些資源或與另一系統(tǒng)劃分當(dāng)前工作負(fù)載是否更節(jié)省成本呢?

性能基準(zhǔn)

當(dāng)試圖比較不同環(huán)境中給定軟件的性能時(shí),常會(huì)遇到許多可能的錯(cuò)誤,一些是技術(shù)上的,一些是概念上的。本節(jié)包含主要的提示信息。本書其它各節(jié)討論評測過去和特定處理時(shí)間的不同方法。

評測處理系統(tǒng)調(diào)用需要花費(fèi)的時(shí)間(掛鐘)時(shí),需要獲取一個(gè)由下列內(nèi)容組成的數(shù)字:

執(zhí)行正運(yùn)行服務(wù)的指令所需要的確切時(shí)間

處理器等待內(nèi)存中的指令或數(shù)據(jù)時(shí)延遲的不同時(shí)間(也就是說,高速緩存和 TLB 不命中的代價(jià))

在調(diào)用開頭和結(jié)束訪問時(shí)鐘所需要的時(shí)間

由周期性事件如系統(tǒng)定時(shí)器中斷所消耗的時(shí)間

由或多或少的隨機(jī)事件消耗的時(shí)間,如 I/O

為了避免報(bào)告一個(gè)不精確的數(shù)字,常常要求多次評測工作負(fù)載。因?yàn)樗械耐獠康囊蛩囟紩?huì)增加處理時(shí)間,典型的評估集有一個(gè)曲線的形式

測定cpu性能的指標(biāo)

一、CPU使用率

1、如何查看CPU使用率

使用vmstat、top等命令查詢,獲取空閑(idle簡寫為id)值,1-id 即為cpu使用率

使用哪種方式查詢都可以,需注意當(dāng)cpu使用率較大時(shí),需使用top命令查詢單個(gè)cpu的利用率;

1)vmstat

2) top

top命令界面下,按1,顯示單個(gè)cpu的信息(再按1,顯示cpu總的使用情況)

如果某個(gè)cpu的數(shù)值使用率較大,其余的很小,則證明程序設(shè)計(jì)的有問題;

2、CPU使用率分析

注意>50%    告警>70%    嚴(yán)重>90%(也可以設(shè)置為80%以上告警)

當(dāng)系統(tǒng)cpu利用率大于50%時(shí),需要注意;大于70%時(shí),需密切關(guān)注;大于90%,情況就比較嚴(yán)重了;

建議CPU使用率70%以下;

二、CPU負(fù)載

1、如何查看CPU負(fù)載

1)查看CPU邏輯顆數(shù)(負(fù)載與邏輯CPU個(gè)數(shù)密切相關(guān))

cat /proc/cpuinfo |grep "processor"|wc -l

說明:以上為4核CPU

2)查看cpu負(fù)載

top命令界面如下(分別為1/5/15分鐘的平均負(fù)載):

2、CPU負(fù)載分析

top命令,load

average的3個(gè)值,均除以邏輯cpu個(gè)數(shù),得到的結(jié)果為每個(gè)cpu內(nèi)核的負(fù)載,對此數(shù)值進(jìn)行分析;

如果大于1,證明已經(jīng)有一定的負(fù)載了;建議每個(gè)cpu內(nèi)核平均負(fù)載不大于0.8;

如果為1~3之間,且系統(tǒng)其它資源都正常,則可接受;若大于5,則系統(tǒng)性能有問題;(有時(shí)大于2,也可以說負(fù)載高)

此數(shù)值并不是固定的,需要根據(jù)系統(tǒng)其它資源統(tǒng)一分析;

ps:這3個(gè)值代表1、5、15分鐘的平均值,通過這3個(gè)數(shù)值的信息,可以分析出系統(tǒng)負(fù)載的趨勢;

三、其他

1) vmstat的r計(jì)數(shù)器> cpu邏輯顆數(shù)

vmstat 1:關(guān)注r列值

r列: 表示系統(tǒng)中 CPU 等待處理的線程。由于 CPU 每次只能處理一個(gè)線程,所以,該數(shù)值越大,通常表示系統(tǒng)運(yùn)行越慢。

這個(gè)值如果長期大于CPU邏輯顆數(shù),則說明CPU資源不足,可以考慮增加CPU;

2)sar -u:查看CPU使用率

sar -q:查看CPU平均負(fù)載

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

autosar中cpu的負(fù)載怎么計(jì)算

autosar中cpu的負(fù)載可以用CPU一段工作時(shí)間與該時(shí)間段內(nèi)被占用時(shí)間的比值來計(jì)算,可以得之CPU負(fù)載率=占用時(shí)間除以運(yùn)行總時(shí)間。負(fù)載,在物理學(xué)中指連接在電路中的兩端具有一定電勢差的電子元件,用于把電能轉(zhuǎn)換成其他形式的能的裝置。在電工學(xué)中指在電路中接收電能的設(shè)備,是各類用電器的總稱。常用的負(fù)載有電阻、引擎、燈泡、空調(diào)、電動(dòng)機(jī)等可消耗功率的元件。對負(fù)載最基本的要求是阻抗匹配和所能承受的功率。
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 久久超级碰 | 免费一级a毛片在线播 | 亚洲一区精品伊人久久 | 最新国产精品精品视频 | 一级毛片不卡片免费观看 | 国产成人精品一区二区三区… | 一区二区在线观看高清 | 视频一区欧美 | 青草九九 | 国产成人乱码一区二区三区在线 | 在线永久免费观看的毛片 | 亚洲国产精品一区二区九九 | 欧美a在线观看 | 亚州激情 | 久久精品成人一区二区三区 | 亚洲国产精品热久久 | 久久精品a亚洲国产v高清不卡 | 一区二区三区电影 | 日韩高清一区 | 欧美日韩亚洲国产一区二区三区 | 综合精品欧美日韩国产在线 | 亚洲欧美在线视频观看 | 亚洲五月婷婷 | 国产成人综合久久精品红 | 中文字幕日韩一区二区三区不卡 | 日韩色视频一区二区三区亚洲 | 国产美女啪啪 | 国产成人久久精品二区三区牛 | 亚洲精品国产综合一线久久 | 国产视频在 | 日韩www视频 | 欧美日韩成人在线视频 | 国产精品久久久久久久毛片 | 国内在线视频 | 欧美日韩在线精品一区二区三区 | 欧美另类一区 | 国产一区二区三区日韩欧美 | 久久久久亚洲精品成人网小说 | 亚洲欧洲免费视频 | 国产网站在线 | 亚洲视频在线观看免费 |