国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

性能測試必備基礎(chǔ)知識(二)

這篇具有很好參考價值的文章主要介紹了性能測試必備基礎(chǔ)知識(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. CPU 使用率

除了空閑時間外的其他時間占總 CPU 時間的百分比,就是CPU 使用率,即 1- 空閑時間/CPU 總時間。

當(dāng)計算 CPU 使用率時,我們通常使用 /proc/stat 文件中的數(shù)據(jù)。該文件提供了有關(guān) CPU 的計數(shù)器信息,包括各種狀態(tài)下的節(jié)拍數(shù)。通過 cat??/proc/stat 命令就可詳細查看其信息,其中各

列的含義如下:

  • user(通??s寫為 us),代表用戶態(tài) CPU 時間。注意,它不包括下面的 nice 時間,但包括了 guest 時間。

  • nice(通??s寫為 ni),代表低優(yōu)先級用戶態(tài) CPU 時間,也就是進程的 nice 值被調(diào)整為 1-19 之間時的 CPU 時間。這里注意,nice 可取值范圍是 -20 到 19,數(shù)值越大,優(yōu)先級反而越低。

  • system(通常縮寫為sys),代表內(nèi)核態(tài) CPU 時間。

  • idle(通??s寫為id),代表空閑時間。注意,它不包括等待 I/O 的時間(iowait)。

  • iowait(通??s寫為 wa),代表等待 I/O 的 CPU 時間。

  • irq(通??s寫為 hi),代表處理硬中斷的 CPU 時間。

  • softirq(通??s寫為 si),代表處理軟中斷的 CPU 時間。

  • steal(通常縮寫為 st),代表當(dāng)系統(tǒng)運行在虛擬機中的時候,被其他虛擬機占用的 CPU 時間。

  • guest(通??s寫為 guest),代表通過虛擬化運行其他操作系統(tǒng)的時間,也就是運行虛擬機的 CPU 時間。

  • guest_nice(通常縮寫為 gnice),代表以低優(yōu)先級運行虛擬機的時間。

2. 軟中斷

假設(shè)你正在使用一款音樂播放器應(yīng)用程序,同時還在進行其他任務(wù),如瀏覽網(wǎng)頁。在某個時刻,音樂播放器應(yīng)用程序需要通知你有一條新的消息到達。然而,應(yīng)用程序不能直接中斷你正在瀏覽的網(wǎng)頁,因為這會干擾你的體驗。因此,應(yīng)用程序使用軟中斷來通知你。

當(dāng)新的消息到達時,音樂播放器應(yīng)用程序觸發(fā)一個軟中斷,類似于發(fā)送一個"通知"。這個軟中斷會暫停當(dāng)前正在執(zhí)行的任務(wù)(瀏覽網(wǎng)頁),然后轉(zhuǎn)移控制權(quán)到應(yīng)用程序內(nèi)部的中斷處理程序。在中斷處理程序中,應(yīng)用程序可以執(zhí)行特定的操作,比如彈出一個消息通知,顯示新消息的內(nèi)容。

一旦中斷處理程序完成執(zhí)行,控制權(quán)將返回給瀏覽器應(yīng)用程序,你可以繼續(xù)瀏覽網(wǎng)頁,并在屏幕上看到新消息的通知。

這個例子中,軟中斷允許應(yīng)用程序在后臺處理事件,并以非侵入性的方式通知用戶。它提供了應(yīng)用程序與操作系統(tǒng)之間的通信和協(xié)調(diào),而無需直接中斷正在執(zhí)行的任務(wù)。軟中斷的關(guān)鍵特點是它由軟件觸發(fā)和處理,而不是由外部設(shè)備觸發(fā)。

在實際的計算機系統(tǒng)中,軟中斷用于各種目的,如處理網(wǎng)絡(luò)數(shù)據(jù)包、處理磁盤操作、定時器事件等。它們提供了一種有效的方式來處理異步事件,同時保持系統(tǒng)的響應(yīng)性和穩(wěn)定性。

網(wǎng)卡接收到數(shù)據(jù)包后,會通過硬件中斷的方式,通知內(nèi)核有新的數(shù)據(jù)到了。這時,內(nèi)核就應(yīng)該調(diào)用中斷處理程序來響應(yīng)它。網(wǎng)卡接收到數(shù)據(jù)包后,會通過硬件中斷的方式,通知內(nèi)核有新的數(shù)據(jù)到了。這時,內(nèi)核就應(yīng)該調(diào)用中斷處理程序來響應(yīng)它。最后再發(fā)送一個軟中斷信號,需要從內(nèi)存中找到網(wǎng)絡(luò)數(shù)據(jù),再按照網(wǎng)絡(luò)協(xié)議棧,對數(shù)據(jù)進行逐層解析和處理,直到把它送給應(yīng)用程序。

3. 內(nèi)存映射

在現(xiàn)代操作系統(tǒng)中,包括Linux,內(nèi)存管理采用了虛擬內(nèi)存的概念。每個進程都有自己的虛擬地址空間,它是一個抽象的地址空間,與實際的物理內(nèi)存地址是分離的。虛擬地址是由進程使用的,而不是直接映射到物理內(nèi)存。

內(nèi)存映射通過將虛擬內(nèi)存地址映射到物理內(nèi)存地址,將虛擬地址空間與物理內(nèi)存關(guān)聯(lián)起來。這樣,進程可以使用虛擬地址來訪問內(nèi)存,而無需關(guān)心實際的物理內(nèi)存位置。

為了實現(xiàn)這種映射,操作系統(tǒng)維護了一個頁表,它是一個數(shù)據(jù)結(jié)構(gòu),記錄了虛擬地址與物理地址之間的映射關(guān)系。每個進程都有自己的頁表,用于管理它的虛擬地址空間。

當(dāng)進程訪問一個虛擬地址時,操作系統(tǒng)會使用頁表查找對應(yīng)的物理地址。如果存在映射關(guān)系,操作系統(tǒng)將虛擬地址轉(zhuǎn)換為對應(yīng)的物理地址,以便在物理內(nèi)存中讀寫數(shù)據(jù)。如果沒有映射關(guān)系,則會觸發(fā)頁面錯誤(page fault),操作系統(tǒng)會根據(jù)情況從磁盤中加載數(shù)據(jù)到物理內(nèi)存,并更新頁表以建立映射關(guān)系。

內(nèi)存映射在文件操作中也使用了類似的機制。當(dāng)將文件內(nèi)容映射到進程的地址空間時,操作系統(tǒng)會將文件的內(nèi)容映射到一段虛擬地址空間,這樣進程就可以通過讀寫這些虛擬地址來實現(xiàn)對文件的訪問。

因此,內(nèi)存映射不僅用于將虛擬內(nèi)存地址映射到物理內(nèi)存地址,也用于將文件內(nèi)容映射到進程的地址空間中。頁表是維護這些映射關(guān)系的重要數(shù)據(jù)結(jié)構(gòu),它記錄了虛擬地址與物理地址之間的對應(yīng)關(guān)系。

?

4.?虛擬內(nèi)存空間分布

  1. 代碼段(Text Segment):
    代碼段包含了可執(zhí)行程序的機器指令。它通常是只讀的,因為指令不應(yīng)該被修改。當(dāng)程序被加載到內(nèi)存中時,代碼段被映射到進程的虛擬內(nèi)存空間,以供執(zhí)行。

  2. 數(shù)據(jù)段(Data Segment):
    數(shù)據(jù)段包含了全局變量和靜態(tài)變量的內(nèi)存空間。它通常是可讀寫的。數(shù)據(jù)段在程序運行時初始化,并且在整個程序的生命周期中保持不變。

  3. 堆(Heap):
    堆是動態(tài)分配內(nèi)存的區(qū)域。在堆中,程序可以通過調(diào)用諸如malloc()和free()等函數(shù)來動態(tài)地分配和釋放內(nèi)存。堆的大小可以在運行時進行調(diào)整。

  4. 棧(Stack):
    棧用于存儲局部變量、函數(shù)調(diào)用和函數(shù)參數(shù)。棧是以后進先出(LIFO)的方式進行管理的。每當(dāng)調(diào)用函數(shù)時,棧會分配一段內(nèi)存來存儲該函數(shù)的局部變量和其他相關(guān)信息。當(dāng)函數(shù)返回時,這些內(nèi)存將被釋放。

  5. 共享庫區(qū)域(Shared Library Region):
    共享庫區(qū)域包含了共享庫的代碼和數(shù)據(jù)。這些庫可以由多個進程共享,以節(jié)省內(nèi)存空間。當(dāng)多個進程使用相同的共享庫時,它們可以將該庫映射到自己的虛擬內(nèi)存空間中,以便共享使用。

  6. 內(nèi)核空間(Kernel Space):
    內(nèi)核空間是由操作系統(tǒng)內(nèi)核使用的虛擬內(nèi)存區(qū)域。它包含了操作系統(tǒng)內(nèi)核的代碼、數(shù)據(jù)和驅(qū)動程序等。用戶進程無法直接訪問內(nèi)核空間,需要通過系統(tǒng)調(diào)用等特定接口與內(nèi)核進行交互。

5. 內(nèi)存分配

內(nèi)存分配:

  1. 靜態(tài)分配:靜態(tài)分配是指在編譯時或程序啟動時就確定內(nèi)存的分配情況。例如,全局變量和靜態(tài)變量的內(nèi)存分配在程序加載時完成,并在整個程序的生命周期中保持不變。

  2. 動態(tài)分配:動態(tài)分配是在程序運行時根據(jù)需要動態(tài)分配和釋放內(nèi)存。常用的動態(tài)內(nèi)存分配函數(shù)是malloc()、calloc()和realloc()。這些函數(shù)允許你請求一定大小的內(nèi)存塊,并返回一個指向該內(nèi)存塊的指針。動態(tài)分配的內(nèi)存塊位于堆(Heap)區(qū)域。

內(nèi)存回收:

  • 回收緩存,比如使用 LRU(Least Recently Used)算法,回收最近使用最少的內(nèi)存頁面;

  • 回收不常訪問的內(nèi)存,把不常用的內(nèi)存通過交換分區(qū)直接寫到磁盤中;

  • 殺死進程,內(nèi)存緊張時系統(tǒng)還會通過 OOM(Out of Memory),直接殺掉占用大量內(nèi)存的進程。

其中,第二種方式回收不常訪問的內(nèi)存時,會用到交換分區(qū)(以下簡稱 Swap)。Swap 其實就是把一塊磁盤空間當(dāng)成內(nèi)存來用。它可以把進程暫時不用的數(shù)據(jù)存儲到磁盤中(這個過程稱為換出),當(dāng)進程訪問這些內(nèi)存時,再從磁盤讀取這些數(shù)據(jù)到內(nèi)存中(這個過程稱為換入)。

不過要注意,通常只在內(nèi)存不足時,才會發(fā)生 Swap 交換。并且由于磁盤讀寫的速度遠比內(nèi)存慢,Swap 會導(dǎo)致嚴重的內(nèi)存性能問題。

第三種方式提到的 OOM(Out of Memory),其實是內(nèi)核的一種保護機制。它監(jiān)控進程的內(nèi)存使用情況,并且使用 oom_score 為每個進程的內(nèi)存使用情況進行評分:

  • 一個進程消耗的內(nèi)存越大,oom_score 就越大;

  • 一個進程運行占用的 CPU 越多,oom_score 就越小。文章來源地址http://www.zghlxwxcb.cn/news/detail-748656.html

到了這里,關(guān)于性能測試必備基礎(chǔ)知識(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SEO優(yōu)化基礎(chǔ)知識大全 SEO新手入門必備知識

    SEO優(yōu)化基礎(chǔ)知識大全 SEO新手入門必備知識

    網(wǎng)上關(guān)于SEO優(yōu)化的知識很多也很雜,很多新手都不知道如何選擇。本來耗子網(wǎng)站里每篇文章都有的詳細步驟的,考慮到很雜,于是耗子對各種SEO優(yōu)化基礎(chǔ)知識進行了整理,但不是很詳細,所以在每個步驟的后面都加上了相關(guān)文章鏈接,希望能幫助SEO新手更多的了解一下SEO基礎(chǔ)

    2024年02月10日
    瀏覽(37)
  • 產(chǎn)品經(jīng)理之基礎(chǔ)必備知識點

    目錄 前言 一.用戶畫像 ? ? ? ? 1.1含義 ? ? ? ?1.2 舉例說明 二.MVP(最小可行產(chǎn)品) ? ? 1.1含義 ? ? 1.2 優(yōu)缺點 三.體驗地圖 ? ? ? ? 3.1 含義 ? ? ? ? 3.2 舉例說明 四.產(chǎn)品路線圖 ? ? ? ? 4.1 含義 ? ? ? ? 4.2 舉例說明 五.用戶故事 ? ? ? ? 5.1 含義 ? ? ? ? 5.2 舉例 六.用戶

    2024年01月18日
    瀏覽(23)
  • 5.爬蟲必備基礎(chǔ)知識(urllib&requests)一

    5.爬蟲必備基礎(chǔ)知識(urllib&requests)一

    我們?yōu)g覽器在輸入完網(wǎng)址到我們看到網(wǎng)頁的整體內(nèi)容, 這個過程中究竟發(fā)生了些什么? 我們看一下一個瀏覽器請求的全過程 接下來就是一個比較重要的事情了. 所有的數(shù)據(jù)都在頁面源代碼里么? 非也~ 這里要介紹一個新的概念 那就是頁面渲染數(shù)據(jù)的過程, 我們常見的頁面渲染過

    2024年04月25日
    瀏覽(24)
  • 【Linux系統(tǒng)基礎(chǔ)快速入門詳解】SSH遠程連接必備網(wǎng)絡(luò)基礎(chǔ)知識詳解

    【Linux系統(tǒng)基礎(chǔ)快速入門詳解】SSH遠程連接必備網(wǎng)絡(luò)基礎(chǔ)知識詳解

    魚弦:CSDN內(nèi)容合伙人、CSDN新星導(dǎo)師、51CTO(Top紅人+專家博主) 、github開源愛好者(go-zero源碼二次開發(fā)、游戲后端架構(gòu) https://github.com/Peakchen) SSH(Secure Shell)是一種網(wǎng)絡(luò)協(xié)議,用于通過加密的方式在不安全的網(wǎng)絡(luò)上安全地進行遠程連接和數(shù)據(jù)傳輸。下面是對SSH遠程連接的必備

    2024年02月07日
    瀏覽(29)
  • MySQL數(shù)據(jù)庫基礎(chǔ)初學(xué)者必備知識

    MySQL數(shù)據(jù)庫基礎(chǔ)初學(xué)者必備知識

    目錄 1.數(shù)據(jù)庫的基本操作 1.1顯示所有數(shù)據(jù)庫 1.2創(chuàng)建數(shù)據(jù)庫 1.3刪除數(shù)據(jù)庫 2.數(shù)據(jù)庫的類型 2.1數(shù)值類型 2.2字符串類型 2.3日期類型 3.表的簡單操作 3.1創(chuàng)建一個表 3.2顯示表的結(jié)構(gòu) 3.3顯示數(shù)據(jù)庫中的所有表 3.4刪除指定表 4.實戰(zhàn)練習(xí) 數(shù)據(jù)庫的基本操作為:顯示數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫

    2023年04月11日
    瀏覽(33)
  • 前端之路 | 1.HTML基礎(chǔ)必備知識學(xué)習(xí)篇

    前端之路 | 1.HTML基礎(chǔ)必備知識學(xué)習(xí)篇

    [ 點擊 ?? 關(guān)注「 全棧工程師修煉指南」公眾號 ] 設(shè)為「?? 星標 」帶你從 基礎(chǔ)入門 到 全棧實踐 再到 放棄學(xué)習(xí) ! 涉及 網(wǎng)絡(luò)安全運維、應(yīng)用開發(fā)、物聯(lián)網(wǎng)IOT、學(xué)習(xí)路徑 、個人感悟 等知識分享。 希望各位看友多多支持【關(guān)注、點贊、評論、收藏、投幣】,助力每一個夢想

    2023年04月11日
    瀏覽(27)
  • IC驗證必備的數(shù)字電路基礎(chǔ)知識(三):時序邏輯電路

    IC驗證必備的數(shù)字電路基礎(chǔ)知識(三):時序邏輯電路

    參考教材:數(shù)字電路與邏輯設(shè)計(第2版)鄔春明 目錄 1. 邊沿觸發(fā)器(D觸發(fā)器) 2. 時序電路描述/構(gòu)成 3. 時序邏輯電路的功能描述方法 組合邏輯電路掌管了電路中的邏輯運算,基本單元是與或非門。而時序邏輯電路則掌管了電路中數(shù)據(jù)的存儲。觸發(fā)器就是構(gòu)成時序邏輯電路

    2024年02月09日
    瀏覽(19)
  • 【性能測試】運維測試01之性能測試整體認知包括:TPS、請求響應(yīng)時間、事務(wù)響應(yīng)時間、并發(fā)用戶數(shù)、吞吐量、吞吐率、點擊率、資源使用率等性能指標詳細介紹

    【性能測試】運維測試01之性能測試整體認知包括:TPS、請求響應(yīng)時間、事務(wù)響應(yīng)時間、并發(fā)用戶數(shù)、吞吐量、吞吐率、點擊率、資源使用率等性能指標詳細介紹

    性能測試整體認知包括:TPS、請求響應(yīng)時間、事務(wù)響應(yīng)時間、并發(fā)用戶數(shù)、吞吐量、吞吐率、點擊率、資源使用率。 1.1 需求一 1.熟悉Linux、windows等操作系統(tǒng),熟悉shell腳本; ⒉.熟悉jvm調(diào)優(yōu), tomcat調(diào)優(yōu)等基礎(chǔ)策略 3.熟悉mysq數(shù)據(jù)庫,熟練掌握javascript、java、python、groovy等至少一門

    2024年02月16日
    瀏覽(25)
  • 全棧之前端 | 1.HTML基礎(chǔ)必備知識學(xué)習(xí)篇

    全棧之前端 | 1.HTML基礎(chǔ)必備知識學(xué)習(xí)篇

    [ 點擊 ?? 關(guān)注「 全棧工程師修煉指南」公眾號 ] 設(shè)為「?? 星標 」帶你從 基礎(chǔ)入門 到 全棧實踐 再到 放棄學(xué)習(xí) ! 涉及 網(wǎng)絡(luò)安全運維、應(yīng)用開發(fā)、物聯(lián)網(wǎng)IOT、學(xué)習(xí)路徑 、個人感悟 等知識分享。 希望各位看友多多支持【關(guān)注、點贊、評論、收藏、投幣】,助力每一個夢想

    2023年04月11日
    瀏覽(26)
  • 接口測試基礎(chǔ)知識(使用 Fiddler 抓包、使用 Postman 發(fā)起請求、Postman漢化教程)

    接口測試基礎(chǔ)知識(使用 Fiddler 抓包、使用 Postman 發(fā)起請求、Postman漢化教程)

    接口用來連接軟件系統(tǒng)中的不同模塊,一個模塊可以通過調(diào)用另一個模塊的接口來實現(xiàn)模塊中的功能 通過接口文檔或抓包來獲取接口的基本調(diào)用方式 通過獲取的接口信息來設(shè)計測試用例 發(fā)起接口測試 獲取接口返回的結(jié)果,對結(jié)果進行驗證和解析 驗證接口URL的設(shè)計是否符合

    2024年02月11日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包