Try   HackMD
tags: Linux, SRE

SRE 讀書會 Round 4 #01 - 線上讀書會共筆

活動資訊


Slides

  • 01 | 如何學習Linux性能優化? - Rick
  • 02 | 基礎篇:到底應該怎麼理解“平均負載”? - 阿福
  • 03 | 基礎篇:經常說的 CPU 上下文切換是什麼意思?(上) - 阿瑋
  • 04 | 基礎篇:經常說的 CPU 上下文切換是什麼意思?(下) - 阿瑋

現場共筆

系統平均負載

代表一段時間內的系統工作量

除了CPU以外,I/O也是影響因素

Zabbix 的監測結果跟 "top/uptime" 沒有一致,因為不同軟體的實作方式都有差異
實際上 Zabbix 採用的是讀取 /proc/stat 來進行計算
相關的內容在 zabbix

fio 此工具可以針對不同的寫 block 的方式做壓測

buffer的地方滿多的
從 library -> kernel -> disk 三層都有
有興趣的可以閱讀這篇文章 Ensuring data reaches disk

在書本裡面的範例出現的問題應該是在 kernel buffer

Context switch

context-switch vs. system call ?
大部分system call 是權限轉換
不能直接兩者比較,要看system call的過程中是否有context-switch

process and thread 差別在 heap

Interupt

  1. 硬中斷 - kill 硬體發出來的
  2. 軟中斷 -

阿光 單core arduino project 因為只有'一個'cpu 所以假如要寫兩個並存的while loop function就必須使用context switching
function 1) 監看開關有沒有被打開
function 2) 開關有被打開的話用音量來控制power relay
兩個function以一個millisecond的速度在不斷交換(context switching)
project影片

sleep()

  1. 可中斷 sleep
  2. 不可中斷 sleep
    參考

IO:

  1. polling io 處理程序不斷的詢問IO
  2. interrupt io IO結束後,發出信號將處理程序叫回來

Demo問題排除:
運行的OS不同,可能會無法出現教材中的數據

CPU 100%孰劣分析?

  1. 切入點:運行哪種OS
  2. 看使用者狀況,使用者不反應越高越好。
  3. 32 core 時不超過,應為ps會waiting,高併發的情況下會越來越嚴重。
  4. DB cpu不能吃太高(30%就會IO BONUD)
  5. 雲端吃到爆/地端需要注意
  6. 應用程式場景不同考量不同

參考資料

Operating Systems: Three Easy Pieces

https://store.steampowered.com/app/504210/SHENZHEN_IO/