<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      stress 命令主要用來模擬系統負載較高時的場景,本文介紹其基本用法。文中 demo 的演示環境為 ubuntu 18.04。

      基本語法

      語法格式:
      stress <options>

      常用選項:
      -c, --cpu N              產生 N 個進程,每個進程都反復不停的計算隨機數的平方根
      -i, --io N                  產生 N 個進程,每個進程反復調用 sync() 將內存上的內容寫到硬盤上
      -m, --vm N             產生 N 個進程,每個進程不斷分配和釋放內存
          --vm-bytes B      指定分配內存的大小
          --vm-stride B     不斷的給部分內存賦值,讓 COW(Copy On Write)發生
          --vm-hang N      指示每個消耗內存的進程在分配到內存后轉入睡眠狀態 N 秒,然后釋放內存,一直重復執行這個過程
          --vm-keep          一直占用內存,區別于不斷的釋放和重新分配(默認是不斷釋放并重新分配內存)
      -d, --hadd N           產生 N 個不斷執行 write 和 unlink 函數的進程(創建文件,寫入內容,刪除文件)
          --hadd-bytes B  指定文件大小
      -t, --timeout N       在 N 秒后結束程序        
      --backoff N            等待N微妙后開始運行
      -q, --quiet              程序在運行的過程中不輸出信息
      -n, --dry-run          輸出程序會做什么而并不實際執行相關的操作
      --version                顯示版本號
      -v, --verbose          顯示詳細的信息

      安裝 stress

      Ubuntu 系統默認沒有安裝 stress,需要通過下面的命令安裝:

      $ sudo apt install stress
      $ stress --version

      消耗 CPU 資源

      stress 消耗 CPU 資源的方式是通過調用 sqrt 函數計算由 rand 函數產生的隨機數的平方根實現的。下面的命令會產生 4 個這樣的進程不斷的進行計算:

      $ stress -c 4

      使用 top 命令查看 CPU 的狀態如下(CPU 在用戶態滿負荷運轉):

      消耗內存資源

      下面的命令產生兩個子進程,每個進程分配 300M 內存:

      $ stress --vm 2 --vm-bytes 300M --vm-keep

      父進程處于睡眠狀態,兩個子進程負責資源消耗。

      --vm-keep
      一直占用內存,區別于不斷的釋放和重新分配(默認是不斷釋放并重新分配內存)。
      --vm-hang N
      指示每個消耗內存的進程在分配到內存后轉入睡眠狀態 N 秒,然后釋放內存,一直重復執行這個過程。

      --vm-keep 和 --vm-hang 都可以用來模擬只有少量內存的機器,但是指定它們時 CPU 的使用情況是不一樣的。

      $ stress --vm 2 --vm-bytes 500M --vm-keep

      一直在進行默認的 stride 操作,user 非常高(cpu 在用戶態忙碌)。

      $ stress --vm 2 --vm-bytes 500M --vm-hang 5

      上面這兩種狀態不斷切換,但整體上看 CPU 的負載并不高。

      --vm-stride B
      不斷的給部分內存賦值,讓 COW(Copy On Write)發生。只要指定了內存相關的選項,這個操作就會執行,只是大小為默認的 4096。賦值內存的比例由參數決定:

      for (i = 0; i < bytes; i += stride)
          ptr[i] = 'Z';           /* Ensure that COW happens.  */

      bytes 為消耗的總內存大小,stride 為間隔。
      該參數會影響 CPU 狀態 us 和 sy:

      $ stress --vm 2 --vm-bytes 500M --vm-stride 64

      $ stress --vm 2 --vm-bytes 500M --vm-stride 1M

      為什么會產生這樣的結果?原因是單獨的賦值和對比操作可以讓 CPU 在用戶態的負載占到 99% 以上。--vm-stride 值增大就意味著減少賦值和對比操作,這樣就增加了內存的釋放和分配次數(cpu在內核空間的負載)。
      不指定 --vm-stride 選項就使用默認值是 4096,CPU 負載情況居于前兩者之間:

      $ stress --vm 2 --vm-bytes 500M

      消耗 IO 資源

      下面的命令產生 4 個進程,每個進程都反復調用 sync 函數將內存上的內容寫到硬盤上:

      $ stress -i 4

      使用 top 命令查看 CPU 的狀態如下:

      sy 升高,wa(iowait) 非常高。

      壓測磁盤及 IO

      下面的命令創建一個進程不斷的在磁盤上創建 10M 大小的文件并寫入內容:

      $ stress -d 1 --hdd-bytes 10M

      使用 top 命令查看 CPU 的狀態如下(此時的 CPU 主要消耗在內核態):

      下面是 iostat 2 的輸出(同樣是高 iowait,瓶頸是寫磁盤):

      其它選項介紹

      --verbose
      顯示 stress 程序運行過程中的詳細信息:

      --timeout N
      在 N 秒后結束程序。

      --quiet
      stress 程序運行的過程中不輸出信息。

      -n, --dry-run
      輸出程序會做什么而并不實際執行相關的操作:

      --backoff N
      讓新 fork 出來的進程 sleep N 微秒再開始運行。

      除了單獨指定某一類的選項,還可以同時執行多個類型的任務,比如產生 3 個 CPU 進程、3 個 IO 進程、2 個10M 的 vm 進程,并且每個 vm 進程中不循環分配釋放內存:

      $ stress --cpu 3 --io 3 --vm 2 --vm-bytes 10M --vm-keep

      總結

      對于學習 Linux 性能檢測相關的命令來說,stress 命令是個得力的助手。通過模擬各種高負載情況,可以幫助我們更好的理解系統瓶頸并掌握性能檢測工具的用法。

      posted on 2025-01-09 13:55  天外來客I  閱讀(625)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 久久亚洲国产精品五月天| 在线观看成人av天堂不卡| 久久综合久中文字幕青草 | 国产精品色哟哟成人av| 亚洲阿v天堂网2021| 亚洲av午夜福利精品一区二区| 四虎国产精品永久在线下载| 里番全彩爆乳女教师| 亚洲精品三区四区成人少| 亚洲欧美在线观看品| 18禁亚洲深夜福利人口| 国产精品18久久久久久麻辣 | 久久久无码精品午夜| 国产亚洲精品自在久久vr| 伊人无码精品久久一区二区| 亚洲码与欧洲码区别入口| 国产在线午夜不卡精品影院| 成人网站免费观看永久视频下载| 日韩精品国内国产一区二| 伊人蕉影院久亚洲高清| 一区二区三区在线 | 欧洲| 亚洲av一本二本三本| 蜜臀久久99精品久久久久久| 国产WW久久久久久久久久| 亚洲天堂av在线免费看| 伊人狠狠色丁香婷婷综合| 中文字幕在线日韩| 国产精品中文第一字幕| 日本午夜精品一区二区三区电影| 国产精品成人一区二区不卡| 欧美无人区码suv| 色av专区无码影音先锋| 亚洲国产日韩精品一区二区三区 | 成人三级视频在线观看不卡| 四虎亚洲国产成人久久精品| 久久人妻无码一区二区| 亚洲成人精品综合在线| 亚洲成亚洲成网中文字幕| 久久精品无码av| 国产极品精品自在线不卡| 日本无遮挡吸乳视频|