Centos系統 環境切換的檢查思路,centos上下文

來源:互聯網
上載者:User

Centos系統 環境切換的檢查思路,centos上下文
1.什麼是環境切換(Context Switch)?

環境切換,有時也稱做進程切換或任務切換,是指CPU從一個進程或線程切換到另一個進程或線程。

作業系統可以同時運行多個進程, 然而一顆CPU同時只能執行一項任務,作業系統利用時間片輪轉的方式,讓使用者感覺這些任務正在同時進行。 CPU給每個任務都服務一定的時間, 然後把當前任務的狀態儲存下來, 在載入下一任務的狀態後, 繼續服務下一任務。任務的狀態儲存及再載入, 這段過程就叫做環境切換。

 

當一個進程在執行時,CPU的所有寄存器中的值、進程的狀態以及堆棧中的內容被稱 為該進程的上下文。當核心需要切換到另一個進程時,它需要儲存當前進程的 所有狀態,即儲存當前進程的上下文,以便在再次執行該進程時,能夠必得到切換時的狀態執行下去。在LINUX中,當前進程上下文均儲存在進程的任務資料結 構中。在發生中斷時,核心就在被中斷進程的上下文中,在核心態下執行插斷服務常式。但同時會保留所有需要用到的資源,以便中繼服務結束時能恢複被中斷進程 的執行。

2.環境切換的消耗?

直接消耗包括: CPU寄存器需要儲存和載入,系統調度器的代碼需要執行,TLB執行個體需要重新載入,CPU 的pipeline需要刷掉。

間接消耗:多核的cache之間得共用資料,間接消耗對於程式的影響要看線程工作區操作資料的大小。

環境切換通常是計算密集型的。也就是說,它需要相當可觀的處理器時間,在每秒幾十上百次的切換中,每次切換都需要納秒量級的時間。所以,環境切換對系統來說意味著消耗大量的 CPU 時間,事實上,可能是作業系統中時間消耗最大的操作。

3.如何檢查環境切換是否頻繁?

(1)確認CPU使用率

CPU是否處於空閑狀態。

(2)vmstat 1

從vmstat的輸出可以看到,io項的block_in和block_out是否頻繁,system項的每秒中斷數(in)和每秒的環境切換(cs)是否頻繁。

(3)pidstat -w 1

從pidstat上可以看到,每個進程對應的cswch(自願環境切換)和nvcswch(非自願環境切換)是否頻繁。

cswch/s: 每秒任務主動(自願的)切換內容相關的次數,當某一任務處於阻塞等待時,將主動讓出自己的CPU資源。
nvcswch/s: 每秒任務被動(不自願的)切換內容相關的次數,CPU分配給某一任務的時間片已經用完,因此將強迫該進程讓出CPU的執行權。

(4)/proc/stat

/proc/stat包含了CPU的活動資訊,環境切換就是其中一項,以ctxt開頭,它表示系統開機到目前為止的環境切換總數。

cat /proc/stat | grep ctxt && sleep 30 && cat /proc/stat | grep ctxt

通過上面的命令,可以計算出每秒環境切換次數=兩者差值/30

通過以上命令即可以定位那個進程環境切換頻繁。

4.造成環境切換頻繁的原因?
  • 當前執行任務的時間片用完之後, 系統CPU正常調度下一個任務
  • 當前執行任務碰到IO阻塞, 調度器將掛起此任務, 繼續下一任務
  • 多個任務搶佔鎖資源, 當前任務沒有搶到,被調度器掛起, 繼續下一任務
  • 使用者代碼掛起當前任務, 讓出CPU時間
  • 硬體中斷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.