<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                找出占用內存資源最多的前 10 個進程 ~~~ ps -auxf | sort -nr -k 4 | head -10 -n數字大小 r反序 k行數 ~~~ 找出占用 CPU 資源最多的前 10 個進程 ~~~ ps -auxf | sort -nr -k 3 | head -10 ~~~ 查看系統平均負載 ~~~ uptime ~~~ 平均負載表示所有CPU的活躍進程數,除以CPU核心數得到每個CPU的平均活躍進程數,數值越大表示每個CPU上運行的進程越多,系統壓力越大,當平均值大于0.7時表示系統較為繁忙。<br> CPU核心數可以通過以下命令查看 ~~~ grep 'model name' /proc/cpuinfo |wc -l ~~~ CPU節拍率 * Process Time in Linux is measured in Jiffies. Jiffies are measured in\*“HZ”\*. * Jiffies value can be fetched via`sysconf(_SC_CLK_TCK)`system call) ~~~ grep 'CONFIG_HZ=' /boot/config-$(uname -r) ~~~ 找出是CPU使用率高還是iowait高usr: 用戶態CPU使用百分比sys: 內核態CPU使用百分比iowait高表示CPU在等硬盤<br> 查看所有CPU的統計信息,每2秒刷新一次 ~~~ mpstat -P ALL 2 ~~~ ## **cpu 使用率常見指標** ``` * user(通常縮寫為 us),代表用戶態 CPU 時間。注意,它不包括下面的 nice 時間,但包括了 guest 時間。 * nice(通常縮寫為 ni),代表低優先級用戶態 CPU 時間,也就是進程的 nice 值被調整 為 1-19 之間時的 CPU 時間。這里注意,nice 可取值范圍是 -20 到 19,數值越大,優 先級反而越低。 * system(通常縮寫為 sys),代表內核態 CPU 時間。 * idle(通常縮寫為 id),代表空閑時間。注意,它不包括等待 I/O 的時間(iowait)。 * iowait(通常縮寫為 wa),代表等待 I/O 的 CPU 時間。 * irq(通常縮寫為 hi),代表處理硬中斷的 CPU 時間。 * softirq(通常縮寫為 si),代表處理軟中斷的 CPU 時間。 * steal(通常縮寫為 st),代表當系統運行在虛擬機中的時候,被其他虛擬機占用的 CPU 時間。 * guest(通常縮寫為 guest),代表通過虛擬化運行其他操作系統的時間,也就是運行虛 擬機的 CPU 時間。 * guest\_nice(通常縮寫為 gnice),代表以低優先級運行虛擬機的時間。 ``` 系統中處于 R 狀態的進程數增加引發的 - 系統中處于 D 狀態的進程數增加引發的 - Loadavg 數值大于某個值就一定有問題。 其基本思路就是,根據引起 Load 變化的根源是 R 狀態任務增多,還是 D 狀態任務增多,來進入到不同的流程。 在 Linux 系統里,讀取 /proc/stat 文件,即可獲取系統中 R 狀態的進程數;但 D 狀態的任務數恐怕最直接的方式還是使用 ps 命令比較方便。而/proc/stat 文件里 procs\_blocked 則給出的是處于等待磁盤 IO 的進程數: 在 Linux 系統里,讀取 /proc/stat 文件,即可獲取系統中 R 狀態的進程數; 但 D 狀態的任務數恐怕最直接的方式還是使用 ps 命令比較方便。而/proc/stat 文件里 procs\_blocked 則給出的是處于等待磁盤 IO 的進程數: 因此 iowait 成為 D 狀態分類里定位是否 Load 高是由 IO 引發的一個重要參考。 iowait 高的時候,CPU 正處于空閑狀態, 使用pidstat -w 查看進程上下文切換次數 ; ~~~ 03:02:18 PM UID PID cswch/s nvcswch/s Command 03:02:18 PM 0 1 2.82 0.48 systemd 03:02:18 PM 0 2 0.00 0.00 kthreadd 03:02:18 PM 0 4 0.00 0.00 kworker ~~~ cs: 自愿上下文切換,代表內存,I/O資源不足 nvcs: 非自愿上下文切換,CPU時間片已到被系統強制調度,代表CPU競爭激烈<br> 查看硬中斷(硬中斷是由硬件產生的),軟中斷(軟中斷是一些對I/O的請求)。 ~~~ cat /proc/interrupts ~~~ ~~~ cat /proc/softirqs ~~~ <br> pidstat 下面的 pidstat 命令,間隔 1 秒展示了進程的 5 組 CPU 使用率,包括: * 用戶態 CPU 使用率 (%usr); * 內核態 CPU 使用率(%system); * 運行虛擬機 CPU 使用率(%guest); * 等待 CPU 使用率(%wait); * 以及總的 CPU 使用率(%CPU)。 最后的 Average 部分,還計算了 5 組數據的平均值。 #### perf top perf top ,類似于 top,它能夠實時顯示占用 CPU 時鐘最多的函數或者指令,可以用來查找熱點函數,使用界面如下所示: ~~~bash $ perf top Samples: 583K of event 'cycles:ppp', Event count (approx.): 32449180472 Overhead Shared Object Symbol 4.71% [kernel] [k] update_blocked_averages 2.89% [kernel] [k] do_syscall_64 1.14% [kernel] [k] __entry_trampoline_start 1.13% perf [.] hpp__sort_overhead 1.07% [kernel] [k] syscall_return_via_sysret 1.04% [kernel] [k] cleanup_module 1.00% [kernel] [k] update_load_avg 0.83% perf [.] __hists__insert_output_entry ~~~ Load的增加大致分為兩種,系統中處于 R 狀態的進程數增加引發的 - 系統中處于 D 狀態的進程數增加引發的。 基本思路就是,根據引起 Load 變化的根源是 R 狀態任務增多,還是 D 狀態任務增多,來進入到不同的流程。 在 Linux 系統里,讀取 /proc/stat 文件,即可獲取系統中 R 狀態的進程數;使用 ps 命令獲取D狀態的進程數。而/proc/stat 文件里 procs\_blocked 則給出的是處于等待磁盤 IO 的進程數:iowait 高的時候,CPU 正處于空閑狀態, **io** ### 查找IO占用情況 查看進程的I/O情況 ~~~ pidstat -d 1 20 ~~~ ### 查看網絡數據包發送情況 sar 命令查看每秒接收發送的網絡幀數和千字節大小 千字節大小\*1024除以幀數得出平均每個數據包字節數 * rxpck/s txpck/s 每秒接收發送的網絡幀數 * rxKB/s txKB/s 每秒接收發送的千字節數 ~~~ [root@host231 ssl]#sar -n DEV 1 ~~~ ### 查找占用CPU時鐘最多的函數或指令 使用perf命令查看 -p 指定進程id 實時查看 ~~~ perf top -g ~~~ 統計之后離線查看 ~~~ perf record -g -F 100 --sleep 15 perf report ~~~ ### 工具總結 在分析 CPU、內存、磁盤等的性能指標時,有幾種工具是高頻出現的,如?top、vmstat、pidstat,總結一下如下: 1. CPU:top、vmstat、pidstat、sar、perf、jstack、jstat; 2. 內存:top、free、vmstat、cachetop、cachestat、sar、jmap; 3. 磁盤:top、iostat、vmstat、pidstat、du/df; 4. 網絡:netstat、sar、dstat、tcpdump; 5. 應用:profiler、dump。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看