① Linux裡面uptime命令作用是什麼
[root@oldboy ~]# uptime
11:45:25 up 5 days, 13:20, 3 users, load average: 0.00, 0.01, 0.05
uptime內容顯示的內容一次是系統時間,開機到現在的天數,用戶登錄數,以及平均負載。
核心是平均負載,其實就是【單位時間內的活躍進程數】。
2顆,單顆4核CPU為例:
1分鍾:10.00 #CPU處理進程1分鍾的繁忙程度,忙碌1分鍾。
5分鍾:8.01 #CPU處理進程5分鍾的繁忙程度,忙碌了5分鍾
15分鍾:5.05 #CPU處理進程15分鍾的繁忙程度,忙碌持續15分鍾,15分鍾內平均值5.
uptime:故障恢復了。
1分鍾:1.00 #CPU處理進程1分鍾的繁忙程度,忙碌1分鍾。
5分鍾:8.01 #CPU處理進程5分鍾的繁忙程度,忙碌了5分鍾
15分鍾:5.05 #CPU處理進程15分鍾的繁忙程度,忙碌持續15分鍾,15分鍾內平均值5.
==============================================
總結:15分鍾負載值12,是高是低呢
負載數值/總的核心數=1 #開始慢的臨界點,實際上1*70%==關注的臨界點。
12/8=1.2 大於1就說明有問題。
負載不要超過5,是臨界點。
2顆單顆4核CPU,共8核,負載就是8*70%=5左右。
需要關注負載的值:總的核心數*70%=關注的點
==================要掌握的============================
1.平均負載是運行隊列中活躍的進程數。
2.平均負載,1,5,15分鍾內的負載。
3.需要關注負載的值:總的核心數*70%=關注的點
4.輔助top,ps,uptime,sar,mpstat,pidstat,iostat,排查問題。
5.strace跟蹤進程系統調用。
6.記住幾個案例(面試講故事)。
面試官問:
你在工作中遇到過哪些生產故障,是怎麼解決的?
最好和資料庫相關(負載高),和web相關(PHP進程100%,JAVA內存泄漏)
==================要掌握的============================
***6.平均負載案例分析實戰\***
下面,我們以三個示例分別來看這三種情況,並用 stress、mpstat、pidstat 等工具,找出平均負載升高的根源。
stress 是 Linux 系統壓力測試工具,這里我們用作異常進程模擬平均負載升高的場景。
mpstat 是多核 CPU 性能分析工具,用來實時查看每個 CPU 的性能指標,以及所有 CPU 的平均指標。
pidstat 是一個常用的進程性能分析工具,用來實時查看進程的 CPU、內存、I/O 以及上下文切換等性能指標。
#如果出現無法使用mpstat、pidstat命令查看%wait指標建議更新下軟體包
yum install sysstats -y
yum install stress -y
stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
***場景一:CPU 密集型進程\***
1.首先,我們在第一個終端運行 stress 命令,模擬一個 CPU 使用率 100% 的場景:
[root@oldboy ~]# stress --cpu 1 --timeout 600
2.接著,在第二個終端運行 uptime 查看平均負載的變化情況
# 使用watch -d 參數表示高亮顯示變化的區域(注意負載會持續升高)
[root@oldboy ~]# watch -d uptime
*3.最後,在第三個終端運行 mpstat 查看 CPU 使用率的變化情況*
# -P ALL 表示監控所有CPU,後面數字5 表示間隔5秒後輸出一組數據
[root@oldboy ~]# mpstat -P ALL 5
#單核CPU,所以只有一個all和0
4.從終端二中可以看到,1 分鍾的平均負載會慢慢增加到 1.00,而從終端三中還可以看到,正好有一個 CPU 的使用率為 100%,但它的 iowait 只有 0。這說明,平均負載的升高正是由於 CPU 使用率為 100% 。那麼,到底是哪個進程導致了 CPU 使用率為 100% 呢?可以使用 pidstat 來查詢

# 間隔5秒輸出一組數據
[root@oldboy ~]# pidstat -u 5 1
#從這里可以明顯看到,stress進程的CPU使用率為100%。
- 模擬cpu負載高 `stress --cpu 1 --timeout 100`
- 通過uptime或w 查看 `watch -d uptime`
- 查看整體狀態mpstat -P ALL 1 查看每個cpu核心使用率
- 精確到進程: pidstat 1
****場景二:I/O 密集型進程\****
1.首先還是運行 stress 命令,但這次模擬 I/O 壓力,即不停地執行 sync
[root@oldboy ~]# stress --io 1 --timeout 600s #利用sync()
stress --hdd 8 --hdd-bytes 1g # hd harkdisk 創建進程去進程寫
*2.然後在第二個終端運行 uptime 查看平均負載的變化情況:*
[root@oldboy ~]# watch -d uptime
18:43:51 up 2 days, 4:27, 3 users, load average: 1.12, 0.65, 0.00
*3.最後第三個終端運行 mpstat 查看 CPU 使用率的變化情況:*
# 顯示所有 CPU 的指標,並在間隔 5 秒輸出一組數據
[root@oldboy ~]# mpstat -P ALL 5
#會發現cpu的與內核打交道的sys佔用非常高
*4.那麼到底是哪個進程,導致 iowait 這么高呢?我們還是用 pidstat 來查詢*
# 間隔5秒後輸出一組數據,-u 表示CPU指標
[root@oldboy ~]# pidstat -u 5 1
#可以發現,還是 stress 進程導致的。
- 通過stress 模擬大量進程讀寫 `stress --hdd 4 `
- 通過w/uptime查看系統負載信息 `watch -d uptime`
- 通過top/mpstat 排查 `mpstat -P ALL 1 或 top 按1`
- 確定是iowati `iostat 1查看整體磁碟讀寫情況 或iotop -o 查看具體哪個進程讀寫`
- 根據對應的進程,進行相關處理.
***場景三:大量進程的場景 高並發場景 \***
*當系統中運行進程超出 CPU 運行能力時,就會出現等待 CPU 的進程。*
*1.首先,我們還是使用 stress,但這次模擬的是 4 個進程*
[root@oldboy ~]# stress -c 4 --timeout 600
*2.由於系統只有 1 個 CPU,明顯比 4 個進程要少得多,因而,系統的 CPU 處於嚴重過載狀態*
*3.然後,再運行 pidstat 來看一下進程的情況:*
# 間隔5秒後輸出一組數據
[root@oldboy ~]# pidstat -u 5 1
*可以看出,4 個進程在爭搶 1 個 CPU,每個進程等待 CPU 的時間(也就是代碼塊中的 %wait 列)高達 75%。這些超出 CPU 計算能力的進程,最終導致 CPU 過載。*
****分析完這三個案例,我再來歸納一下平均負載與CPU\****
***平均負載提供了一個快速查看系統整體性能的手段,反映了整體的負載情況。但只看平均負載本身,我們並不能直接發現,到底是哪裡出現了瓶頸。所以,在理解平均負載時,也要注意:
平均負載高有可能是 CPU 密集型進程導致的;
平均負載高並不一定代表 CPU 使用率高,還有可能是 I/O 更繁忙了;
當發現負載高的時候,你可以使用 mpstat、pidstat 等工具,輔助分析負載的來源****
**系統負載的計算和意義**
進程以及子進程和線程產生的計算指令都會讓cpu執行,產生請求的這些進程組成"運行隊列",等待cpu執行,這個隊列就是系統負載, 系統負載是所有cpu的運行隊列的總和.
[root@oldboye ~]# w
20:25:48 up 95 days, 9:06, 1 user, load average: 2.92, 0.00, 0.00
//假設當前計算機有4個核心的cpu,當前的負載是2.92
cpu1 cpu2 cpu3 cpu4
2.94/4(個cpu核心) = 73%的cpu資源被使用,剩下27%的cpu計算資源是空想的
//假設當前的計算有2個核心的cpu,當前的負載是2.92
2.92/2 = 146% 已經驗證超過了cpu的處理能力
7. 日常故障排查流程(含日誌)
- w/uptime, 查看負載
- ps aux/top 看看 cpu百分比, io wait或者是內存佔用的高? (三高 cpu,io,內存)
- top檢查具體是哪個進程,找出可疑進程
- 追蹤這個進程使用情況,做什麼的?
- 看看對應**日誌**是否有異常
- 系統日誌: /var/log/messages(系統通用日誌) /var/log/secure(用戶登錄情況)
- 服務軟體的日誌
***3.那平均負載為多少時合理\***
*最理想的狀態是每個 CPU核心 上都剛好運行著一個進程,這樣每個 CPU 都得到了充分利用。所以在評判平均負載時,首先你要知道系統有幾個 CPU核心,這可以通過 top 命令獲取,或`grep 'model name' /proc/cpuinfo`*
系統平均負載被定義為在特定時間間隔內運行隊列中的平均進程數。如果一個進程滿足以下條件則其就會位於運行隊列中:
- 它沒有在等待I/O操作的結果
- 它沒有主動進入等待狀態(也就是沒有調用'wait')
- 沒有被停止(例如:等待終止)
《內容來自老男孩老師的課堂筆記》
② cpu故障代碼
CPU的故障代碼是零x001005-1000009。
③ 一分鍾之內讓cpu燒毀的代碼有木有
呵呵,學校曾經有牛人用匯編試過了,用在P4 2.4的CPU上成功了.但是用在現在的主板好像行不通,當時的原理就是控制BIOS的溫度控制和CPU里有一個測溫的小配件.具體不清楚.
④ CPU過載問題如何解決
1、換CPU、祥指伍換風扇或給風扇軸加油潤滑、清理系統垃圾,或大容量謹或的運行的軟體。
2、筆逗悄記本的話,去品牌的維修點處理下,自己暫時的解決辦法是用夏天的風扇對著散熱孔吹 或者買個散熱器。
⑤ 什麼是CPU過載
就是CPU滿載工作的意思。CPU工作能力並不是無限的,而是不同性能的CPU,都有各自的性能,一辯信旦CPU運行的應用程序太厲害,比如玩大型游戲,3d建模渲染,這樣的運用下,CPU性能不足,CPU就行亮會佔用率百分百,電腦運行就會非常卡頓,比如滑鼠隨意點一下,延遲好幾秒才會有攜帶輪對應動作。
⑥ 開幾個軟體就cpu過載藍屏
首先看一下藍屏的原因。
1、虛擬內存不足造成系統多任務運算兆磨錯誤。
2、CPU超頻導致運算錯誤。
3、內存條的互不兼容或損壞引起運算錯誤。
4、光碟機在謹州讀盤時被非正族晌斗常打開所至。
5、遭到不明的程序或病毒攻擊所至。
6、版本沖突。
7、注冊表中存在錯誤或損壞。
8、軟硬體不兼容。
9、應用程序存在著BUG。
藍屏的解決辦法。
1、安裝騰訊電腦管家安全軟體,更新驅動,查殺木馬病毒。
2、萬能方法:重裝系統。
3、如果以上方法無效,那麼可能是硬體損壞,建議送售後維修。