當前位置:首頁 » 操作系統 » 查看linux負載

查看linux負載

發布時間: 2022-11-13 14:14:19

linux裡面查看負載的命令是什麼

linux中執行[root @xyz ~]# top命令回車即可查看負載信息

⑵ 如何查看linux伺服器硬碟IO讀寫負載

  1. 打開終端

  2. 用top命令查看。輸入:

  3. top#查看swap
  4. iostat-x110#查看%util%idle
    #如果iostat沒有要yuminstallsysstat
    #如果%util接近100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。idle小於70%IO壓力就較大了,一般讀取速度有較多的wait.
  5. #如果你想對硬碟做一個IO負荷的壓力測試可以用如下命令
    timeddif=/dev/zerobs=1Mcount=2048of=direct_2G
    #此命令為在當前目錄下新建一個2G的文件
  6. 歡迎追問

⑶ Linux系統下怎麼查看應用CPU、內存、負載

Linux 系統中―/proc‖是個偽文件目錄,不佔用系統空間,及時的反應出內存現在使用的進程情況......其中許多文件都保存系統運行狀態和相關信息對於―/proc‖中文件可使用文件查看命令瀏覽其內容,文件中包含系統特定信息:
cpuinfo 主機CPU 信息
filesystems 文件系統信息
meninfo 主機內存信息
version Linux 內存版本信息
diskstatus 磁碟負載情況
另外top 命令可以動態的顯示當前系統進程用戶的使用情況,而且是動態的顯示出來,尤其是在該命令顯示出來的對上方對系統的情況進行匯總.
free 命令呢可以查看真實使用的內存 一般用free -m
使用lsof 、ps -aux 可以查看詳細的每個進程的使用狀況
dmesg 也是常用來查看系統性能的命令

⑷ 如何查看當前Linux系統的狀態,如CPU使用,內存使用,負載情況等.

可以用TOP工具查看實時狀態。

top進入視圖:

第一行:
10:01:23 當前系統時間
126 days, 14:29 系統已經運行了126天14小時29分鍾(在這期間沒有重啟過)
2 users 當前有2個用戶登錄系統
load average: 1.15, 1.42, 1.44 load average後面的三個數分別是1分鍾、5分鍾、15分鍾的負載情況。

load average數據是每隔5秒鍾檢查一次活躍的進程數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第二行:
Tasks 任務(進程),系統現在共有183個進程,其中處於運行中的有1個,182個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵屍)的有0個。
第三行:cpu狀態
6.7% us 用戶空間佔用CPU的百分比。
0.4% sy 內核空間佔用CPU的百分比。
0.0% ni 改變過優先順序的進程佔用CPU的百分比
92.9% id 空閑CPU百分比
0.0% wa IO等待佔用CPU的百分比
0.0% hi 硬中斷(Hardware IRQ)佔用CPU的百分比
0.0% si 軟中斷(Software Interrupts)佔用CPU的百分比

第四行:內存狀態
8306544k total 物理內存總量(8GB)
7775876k used 使用中的內存總量(7.7GB)
530668k free 空閑內存總量(530M)
79236k buffers 緩存的內存量 (79M)
第五行:swap交換分區
2031608k total 交換區總量(2GB)
2556k used 使用的交換區總量(2.5M)
2029052k free 空閑交換區總量(2GB)
4231276k cached 緩沖的交換區總量(4GB)

⑸ 在linux系統中,如何查看系統的cpu和io負載情況

可以用TOP工具查看實時狀態。

⑹ 如何查看當前Linux 系統的狀態,如CPU 使用,內存使用,負載情況

Linux 系統中―/proc‖是個偽文件目錄,不佔用系統空間,及時的反應出內存現在使用的進程情況......其中許多文件都保存系統運行狀態和相關信息對於―/proc‖中文件可使用文件查看命令瀏覽其內容,文件中包含系統特定信息:
cpuinfo 主機CPU 信息
filesystems 文件系統信息
meninfo 主機內存信息
version Linux 內存版本信息
diskstatus 磁碟負載情況
另外top 命令可以動態的顯示當前系統進程用戶的使用情況,而且是動態的顯示出來,尤其是在該命令顯示出來的對上方對系統的情況進行匯總.
free 命令呢可以查看真實使用的內存 一般用free -m
使用lsof 、ps -aux 可以查看詳細的每個進程的使用狀況
dmesg 也是常用來查看系統性能的命令
請參考《Linux就該這么學》入門書籍。

⑺ 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 來查詢

![](18.Linux系統管理-進程管理.assets/a.png)

# 間隔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')
- 沒有被停止(例如:等待終止)
《內容來自老男孩老師的課堂筆記》

⑻ linux 下查看網路負載命令

用 netstat 查看 Linux 網路狀況。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
前面的 netstat -n是netstat的命令,Windows和Linux都可以用,結果顯示內容差不多
後面的 awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 是Linux下的命令,主要作用是對netstat輸出的結果進行過濾和處理:
運行這一句之後,顯示的結果類似如下:
TIME_WAIT 27
FIN_WAIT1 435
FIN_WAIT2 89
ESTABLISHED 82
SYN_RECV 64
CLOSING 4
LAST_ACK 90
內容解釋如下:
TIME-WAIT:等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
FIN-WAIT-1:等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN-WAIT-2:從遠程TCP等待連接中斷請求
ESTABLISHED:代表一個打開的連接
SYN-RECV:再收到和發送一個連接請求後等待對方對連接請求的確認
SYN-SENT:再發送連接請求後等待匹配的連接請求
CLOSING:等待遠程TCP對連接中斷的確認
CLOSED:沒有任何連接狀態
CLOSE-WAIT:等待從本地用戶發來的連接中斷請求
LAST-ACK:等待原來的發向遠程TCP的連接中斷請求的確認
LISTEN:偵聽來自遠方的TCP埠的連接請求

⑼ 如何查看linux伺服器負載

查看伺服器負載有多種命令,w、vmstat或者uptime都可以直接展示負載。
[hs@master opt]$ uptime
11:00:06 up 106 days, 19:36, 3 users, load average: 0.00, 0.03, 0.05
信息顯示依次為:現在時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鍾、5分鍾和15分鍾內的平均負載。
1可以被認為是最優的負載值。負載是會隨著系統不同改變得。單CPU系統1-3和SMP系統6-10都是可能接受的。

[hs@master opt]$ w
11:00:38 up 106 days, 19:37, 3 users, load average: 0.00, 0.03, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
spark59 pts/0 09:47 14:46 1:08 0.01s sshd: spark59 [priv]
spark59 pts/1 09:47 11:10 55.77s 0.00s sshd: spark59 [priv]
spark59 pts/2 09:58 6.00s 0.11s 0.00s sshd: spark59 [priv]

load average分別對應於過去1分鍾,5分鍾,15分鍾的負載平均值。

[hs@master opt]$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 2276632 132056 1544508 0 0 20 75 1 0 2 0 97 0 0
procs
r 列表示運行和等待cpu時間片的進程數,如果長期大於1,說明cpu不足,需要增加cpu。
b 列表示在等待資源的進程數,比如正在等待I/O、或者內存交換等。
cpu表示cpu的使用狀態
us 列顯示了用戶方式下所花費 CPU 時間的百分比。us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期大於50%,需要考慮優化用戶的程序。
sy 列顯示了內核進程所花費的cpu時間的百分比。這里us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
wa 列顯示了IO等待所佔用的CPU時間的百分比。這里wa的參考值為30%,如果wa超過30%,說明IO等待嚴重,這可能是磁碟大量隨機訪問造成的,也可能磁碟或者磁碟訪問控制器的帶寬瓶頸造成的(主要是塊操作)。
id 列顯示了cpu處在空閑狀態的時間百分比
system 顯示採集間隔內發生的中斷數
in 列表示在某一時間間隔中觀測到的每秒設備中斷數。
cs列表示每秒產生的上下文切換次數,如當 cs 比磁碟 I/O 和網路信息包速率高得多,都應進行進一步調查。
memory
swpd 切換到內存交換區的內存數量(k表示)。如果swpd的值不為0,或者比較大,比如超過了100m,只要si、so的值長期為0,系統性能還是正常
free 當前的空閑頁面列表中內存數量(k表示)
buff 作為buffer cache的內存數量,一般對塊設備的讀寫才需要緩沖。
cache: 作為page cache的內存數量,一般作為文件系統的cache,如果cache較大,說明用到cache的文件較多,如果此時IO中bi比較小,說明文件系統效率比較好。
swap
si 由內存進入內存交換區數量。
so由內存交換區進入內存數量。
IO
bi 從塊設備讀入數據的總量(讀磁碟)(每秒kb)。
bo 塊設備寫入數據的總量(寫磁碟)(每秒kb)
這里我們設置的bi+bo參考值為1000,如果超過1000,而且wa值較大應該考慮均衡磁碟負載,可以結合iostat輸出來分析。

以上三個個命令只是單純的反映出負載,linux提供了更為強大,也更為實用的top命令來查看伺服器負載。
top命令能夠清晰的展現出系統的狀態,而且它是實時的監控,按q退出。
[hs@master opt]$ top
top - 11:01:13 up 106 days, 19:37, 3 users, load average: 0.05, 0.04, 0.05
Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.1 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 8011936 total, 5733520 used, 2278416 free, 131392 buffers
KiB Swap: 0 total, 0 used, 0 free. 1543588 cached Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32001 hs 20 0 1265020 256252 38172 S 2.3 3.2 0:56.77 java
2696 hs 20 0 3726664 447420 60 S 0.7 5.6 819:57.88 java
29566 root 20 0 64780 4668 2628 S 0.7 0.1 43:18.42 AliYunDun
1624 hs 20 0 1789456 292492 4928 S 0.3 3.7 298:23.89 java
2008 hs 20 0 1996320 438004 4604 S 0.3 5.5 849:44.95 java
2465 hs 20 0 1258944 170752 264 S 0.3 2.1 89:18.25 java
3284 hs 20 0 2867828 210788 3756 S 0.3 2.6 259:29.98 java
29580 root 20 0 836552 6320 2584 S 0.3 0.1 13:10.27 AliHids
1 root 20 0 63648 25184 1424 S 0.0 0.3 4:44.45 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:01.49 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 8:01.90 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:30.46 migration/0

Tasks行展示了目前的進程總數及所處狀態,要注意zombie,表示僵屍進程,不為0則表示有進程出現問題。

Cpu(s)行展示了當前CPU的狀態,us表示用戶進程佔用CPU比例,sy表示內核進程佔用CPU比例,id表示空閑CPU百分比,wa表示IO等待所佔用的CPU時間的百分比。wa佔用超過30%則表示IO壓力很大。
Mem行展示了當前內存的狀態,total是總的內存大小,userd是已使用的,free是剩餘的,buffers是目錄緩存。
Swap行同Mem行,cached表示緩存,用戶已打開的文件。如果Swap的used很高,則表示系統內存不足。

在top命令下,按1,則可以展示出伺服器有多少CPU,及每個CPU的使用情況
一般而言,伺服器的合理負載是CPU核數*2。也就是說對於8核的CPU,負載在16以內表明機器運行很穩定流暢。如果負載超過16了,就說明伺服器的運行有一定的壓力了。

在top命令下,按shift + "c",則將進程按照CPU使用率從大到小排序,按shift+"p",則將進程按照內存使用率從大到小排序,很容易能夠定位出哪些服務佔用了較高的CPU和內存。

僅僅有top命令是不夠的,因為它僅能展示CPU和內存的使用情況,對於負載升高的另一重要原因——IO沒有清晰明確的展示。linux提供了iostat命令,可以了解io的開銷。

輸入iostat -x 1 10命令,表示開始監控輸入輸出狀態,-x表示顯示所有參數信息,1表示每隔1秒監控一次,10表示共監控10次。
其中rsec/s表示讀入,wsec/s表示每秒寫入,這兩個參數某一個特別高的時候就表示磁碟IO有很大壓力,util表示IO使用率,如果接近100%,說明IO滿負荷運轉。
[hs@master opt]$ iostat -x 1 10
Linux 3.10.0-123.9.3.el7.x86_64 (master) 07/29/2016 _x86_64_(4 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
2.47 0.00 0.38 0.20 0.00 96.95

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.86 0.77 1.45 50.88 139.71 172.11 0.18 81.22 3.87 122.28 1.52 0.34
vdb 0.00 37.36 0.37 3.16 28.06 159.69 106.50 0.02 4.69 5.87 4.55 1.86 0.65

avg-cpu: %user %nice %system %iowait %steal %idle
0.75 0.00 0.25 0.25 0.00 98.75

總結:
(1)使用top命令查看負載,在top下按「1」查看CPU核心數量,shift+"c"按cpu使用率大小排序,shif+"p"按內存使用率高低排序;
(2)使用iostat -x 命令來監控io的輸入輸出是否過大

熱點內容
安卓在美國怎麼下載 發布:2024-05-05 02:31:06 瀏覽:923
黑莓存儲空間 發布:2024-05-05 02:19:50 瀏覽:274
我的世界礦石島伺服器宣傳片 發布:2024-05-05 02:17:19 瀏覽:613
如何區分安卓原裝充電器 發布:2024-05-05 01:41:23 瀏覽:72
怎麼從蘋果轉移到安卓 發布:2024-05-05 01:41:20 瀏覽:721
支付寶付款碼怎麼設置密碼 發布:2024-05-05 01:27:36 瀏覽:878
qtp錄制的腳本 發布:2024-05-05 01:14:04 瀏覽:367
如何安裝卡羅拉安卓系統 發布:2024-05-05 01:09:00 瀏覽:985
sql創建表查詢表 發布:2024-05-05 01:00:12 瀏覽:799
食色抖音上傳 發布:2024-05-05 00:55:56 瀏覽:658