欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Linux-CPU之平均負載-創(chuàng)新互聯(lián)

一般我們覺得系統(tǒng)變慢了,都會執(zhí)行 top 或者 uptime 命令,來了解系統(tǒng)的負載情況。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比漢南網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式漢南網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋漢南地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
uptime
 11:29:06 up 0 min,  2 users,  load average: 1.21, 0.29, 0.10
 // 當(dāng)前時間    // 系統(tǒng)運行時間  // 正在登錄用戶數(shù)   //1 分鐘、5 分鐘、15 分鐘的平均負載
概念:

平均負載是指單位時間內(nèi),系統(tǒng)處于可運行狀態(tài)和不可中斷狀態(tài)的平均進程數(shù),也就是平均活躍進程數(shù),它和 CPU 使用率并沒有直接關(guān)系。

  1. 可運行狀態(tài)的進程,是指正在使用 CPU 或者正在等待 CPU 的進程,也就是我們常用 ps 命令看到的,處于 R 狀態(tài)(Running 或 Runnable)的進程。
  2. 不可中斷狀態(tài)的進程則是正處于內(nèi)核態(tài)關(guān)鍵流程中的進程,并且這些流程是不可打斷的。比如最常見的是等待硬件設(shè)備的 I/O 響應(yīng),也就是我們在 ps 命令中看到的 D 狀態(tài)(Uninterruptible Sleep,也稱為 Disk Sleep)的進程。
平均負載多少合適

本質(zhì):平均負載其實就是平均活躍進程數(shù)。

理想的,就是每個 CPU 上都剛好運行著一個進程,這樣每個 CPU 都得到了充分利用。

當(dāng)平均負載高于 CPU 數(shù)量 70% 的時候,你就應(yīng)該分析排查負載高的問題了。

平均負載為 2 時:
只有 2 個 CPU 的系統(tǒng)上,意味著所有的 CPU 都剛好被完全占用。
4 個 CPU 的系統(tǒng)上,意味著 CPU 有 50% 的空閑。
1 個 CPU 的系統(tǒng)中,則意味著有一半的進程競爭不到 CPU。

如何獲取CPU的個數(shù):文件 /proc/cpuinfo 中獲取個數(shù)。

grep 'model name' /proc/cpuinfo |wc -l
2
平均負載與 CPU 使用率區(qū)分

平均負載是指單位時間內(nèi),處于可運行狀態(tài)和不可中斷狀態(tài)的進程數(shù),不僅包括了正在使用 CPU 的進程,還包括等待 CPU 和等待 I/O 的進程。

CPU 使用率,是單位時間內(nèi) CPU 繁忙情況的統(tǒng)計,跟平均負載并不一定完全對應(yīng)。

CPU 密集型進程,使用大量 CPU 會導(dǎo)致平均負載升高,此時這兩者是一致的;
I/O 密集型進程,等待 I/O 也會導(dǎo)致平均負載升高,但 CPU 使用率不一定很高;
大量等待 CPU 的進程調(diào)度也會導(dǎo)致平均負載升高,此時的 CPU 使用率也會比較高。

CPU 使用率

Linux 作為一個多任務(wù)操作系統(tǒng),將每個 CPU 的時間劃分為很短的時間片,再通過調(diào)度器輪流分配給各個任務(wù)使用。

維護 CPU 時間,Linux 通過事先定義的節(jié)拍率(內(nèi)核中表示為 HZ),觸發(fā)時間中斷,并使用全局變量 Jiffies 記錄了開機以來的節(jié)拍數(shù)。每發(fā)生一次時間中斷,Jiffies 的值就加 1。

因為節(jié)拍率 HZ 是內(nèi)核選項,為了方便用戶空間程序,內(nèi)核還提供了一個用戶空間節(jié)拍率 USER_HZ,它總是固定為 100,也就是 1/100 秒。

Linux 通過 /proc 虛擬文件系統(tǒng),向用戶空間提供了系統(tǒng)內(nèi)部狀態(tài)的信息,而 /proc/stat 提供的就是系統(tǒng)的 CPU 和任務(wù)統(tǒng)計信息。

cat /proc/stat
//user 用戶態(tài)時間nice 用戶態(tài)時間(低優(yōu)先級,nice>0)
//system 內(nèi)核態(tài)時間  idle 空閑時間
//iowait I/O等待時間
//irq 硬中斷  softirq 軟中斷

//CPU指標(biāo):user,nice, system, idle, iowait, irq, softirq
cpu  130216 19944 162525 1491240 3784 24749 17773 0 0 0
cpu0 40321 11452 49784 403099 2615 6076 6748 0 0 0
cpu1 26585 2425 36639 151166 404 2533 3541 0 0 0
cpu2 22555 2957 31482 152460 330 2236 2473 0 0 0
cpu3 15232 1243 20945 153740 303 1985 3432 0 0 0
cpu4 5903 595 6017 157410 30 10959 605 0 0 0
cpu5 4716 380 3794 157909 23 118 181 0 0 0
cpu6 8001 515 8995 157571 48 571 180 0 0 0
cpu7 6903 377 4869 157885 31 271 613 0 0 0

intr ...   //系統(tǒng)啟動以來的所有interrupts的次數(shù)情況
ctxt 22523049  //系統(tǒng)上下文切換次數(shù)
btime 1500827856  //啟動時長(單位:秒),從Epoch(即1970零時)開始到系統(tǒng)啟動所經(jīng)過的時長,每次啟動會改變。
processes 23231  //系統(tǒng)啟動后所創(chuàng)建過的進程數(shù)量。當(dāng)短時間該值特別大,系統(tǒng)可能出現(xiàn)異常
procs_running 1  // 處于Runnable狀態(tài)的進程個數(shù)
procs_blocked 0  // 處于等待I/O完成的進程個數(shù)
softirq 3552900 843593 733695 19691 93143 468832 12783 257382 610426 0 513355

時間單位,sysconf(_SC_CLK_TCK)一般地定義為jiffies(一般地等于10ms)

iowait時間是不可靠值,理由如下:
CPU不會等待I/O執(zhí)行完成,而iowait是等待I/O完成的時間。 當(dāng)CPU進入idle狀態(tài),很可能會調(diào)度另一個task執(zhí)行,所以iowait計算時間偏?。?/p>

計算方法

在這里插入圖片描述
根據(jù)這個公式,我們就可以從 /proc/stat 中的數(shù)據(jù),很容易地計算出 CPU 使用率。當(dāng)然,也可以用每一個場景的 CPU 時間,除以總的 CPU 時間,計算出每個場景的 CPU 使用率。

這是開機以來的節(jié)拍數(shù)累加值,所以直接算出來的,是開機以來的平均 CPU 使用率,一般沒啥參考價值。

為了計算 CPU 使用率,性能工具一般都會取間隔一段時間(比如 3 秒)的兩次值,作差后,再計算出這段時間內(nèi)的平均 CPU 使用率,即
在這里插入圖片描述

top 默認(rèn)使用 3 秒時間間隔,而 ps 使用的卻是進程的整個生命周期。

CPU 使用率過高排查

1.通過 top、ps、pidstat 等工具,你能夠輕松找到 CPU 使用率較高(比如 100% )的進程。
2.尋找占用 CPU 的到底是代碼里的哪個函數(shù)呢。

perf:perf 是 Linux 2.6.31 以后內(nèi)置的性能分析工具。它以性能事件采樣為基礎(chǔ),不僅可以分析系統(tǒng)的各種事件和內(nèi)核性能,還可以用來分析指定應(yīng)用程序的性能問題。

$ perf top
Samples: 833  of event 'cpu-clock', Event count (approx.): 97742399
Overhead  Shared Object       Symbol
   7.28%  perf                [.] 0x00000000001f78a4
   4.72%  [kernel]            [k] vsnprintf
   4.32%  [kernel]            [k] module_get_kallsym
   3.65%  [kernel]            [k] _raw_spin_unlock_irqrestore
...

#離線采集分析   -g 參數(shù),開啟調(diào)用關(guān)系的采樣
perf record -g # 按 Ctrl+C 終止采樣
perf report # 展示類似于 perf top 的報告

第一行包含三個數(shù)據(jù),分別是采樣數(shù)(Samples)、事件類型(event)和事件總數(shù)量(Event count)。比如這個例子中,perf 總共采集了 833 個 CPU 時鐘事件,而總事件數(shù)則為 97742399。

第一列 Overhead ,是該符號的性能事件在所有采樣中的比例,用百分比來表示。
第二列 Shared ,是該函數(shù)或指令所在的動態(tài)共享對象(Dynamic Shared Object),如內(nèi)核、進程名、動態(tài)鏈接庫名、內(nèi)核模塊名等。
第三列 Object ,是動態(tài)共享對象的類型。比如 [.] 表示用戶空間的可執(zhí)行程序、或者動態(tài)鏈接庫,而 [k] 則表示內(nèi)核空間。
最后一列 Symbol 是符號名,也就是函數(shù)名。當(dāng)函數(shù)名未知時,用十六進制的地址來表示。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:Linux-CPU之平均負載-創(chuàng)新互聯(lián)
鏈接地址:http://chinadenli.net/article2/psioc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)網(wǎng)站制作、全網(wǎng)營銷推廣、建站公司、小程序開發(fā)ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
国产成人午夜av一区二区| 亚洲黄香蕉视频免费看| 国产视频一区二区三区四区| 青青操视频在线播放免费| 蜜桃传媒在线正在播放| 欧美精品久久99九九| 一级欧美一级欧美在线播| 成年女人午夜在线视频| 美女被后入福利在线观看| 精品伊人久久大香线蕉综合| 国产一区二区三区av在线| 黄色片国产一区二区三区| 国内精品伊人久久久av高清| 老司机精品视频在线免费| 人妻亚洲一区二区三区| 厕所偷拍一区二区三区视频| 日本女优一色一伦一区二区三区| 91在线爽的少妇嗷嗷叫| 日韩精品少妇人妻一区二区| 99久久成人精品国产免费| 久久精品亚洲精品国产欧美| 日本精品最新字幕视频播放| 国产精品一区二区日韩新区| 高清一区二区三区四区五区| 日本东京热加勒比一区二区| 69老司机精品视频在线观看| 欧美字幕一区二区三区| 亚洲女同一区二区另类| 少妇人妻一级片一区二区三区| 一区二区三区在线不卡免费| 中文字幕欧美精品人妻一区| 国产又粗又猛又爽又黄| 日韩人妻免费视频一专区| 久久精品视频就在久久| 婷婷色网视频在线播放| 丰满人妻少妇精品一区二区三区| 色婷婷国产精品视频一区二区保健 | 日韩不卡一区二区在线| 亚洲一区二区三区日韩91| 国产内射一级二级三级| 在线视频三区日本精品|