1. 程式人生 > >系統技術非業餘研究 » 給你的Linux系統上點stress

系統技術非業餘研究 » 給你的Linux系統上點stress

《debug hacks》 這本書介紹了非常多的除錯手段和工具, 其中提到了stress這個簡單的壓力測試工具,在我們的日常工作中很有用。利用它可以給我們的系統施加CPU,記憶體,IO和磁碟的壓力,在模擬極端場景給應用系統造成的壓力方面很有幫助。

主頁見這裡:http://weather.ou.edu/~apw/projects/stress/
這裡還有一篇介紹如何使用的部落格。

stress is a deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system. It is written in C, and is free software licensed under the GPLv2.

這個stress實現非常的簡單,所有的功能在一個.c檔案裡面實現, 系統執行的時候會fork多個子程序,分別進行CPU,記憶體,IO方面的折磨。

因為簡單所以穩定。參考例子:

$ stress –cpu 2 –io 1 –vm 1 –vm-bytes 128M –timeout 10s –verbose
stress: info: [9372] dispatching hogs: 2 cpu, 1 io, 1 vm, 0 hdd
stress: dbug: [9372] (243) using backoff sleep of 12000us
stress: dbug: [9372] (262) setting timeout to 10s
stress: dbug: [9372] (285) –> hogcpu worker 9373 forked
stress: dbug: [9372] (305) –> hogio worker 9374 forked
stress: dbug: [9372] (325) –> hogvm worker 9375 forked
stress: dbug: [9372] (243) using backoff sleep of 3000us
stress: dbug: [9372] (262) setting timeout to 10s
stress: dbug: [9372] (285) –> hogcpu worker 9376 forked
stress: dbug: [9375] (466) hogvm worker malloced 134217728 bytes
stress: dbug: [9372] (382)

由於stress支援posix平臺,簡單的下載,編譯和安裝就好了, 很順利!
按照文件預設的執行引數,讓系統來點體驗:

$stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10d
stress: info: [23176] dispatching hogs: 8 cpu, 4 io, 2 vm, 0 hdd

pstree可以看到:

nmon可以看到:

具體使用可以參考man stress!

祝大家玩得開心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

No related posts.

相關推薦

系統技術業餘研究 » Linux系統stress

《debug hacks》 這本書介紹了非常多的除錯手段和工具, 其中提到了stress這個簡單的壓力測試工具,在我們的日常工作中很有用。利用它可以給我們的系統施加CPU,記憶體,IO和磁碟的壓力,在模擬極端場景給應用系統造成的壓力方面很有幫助。 主頁見這裡:http://weather.ou.e

系統技術業餘研究 » nmon(Linux下很好用的效能監測工具)介紹

The nmon tool is designed for AIX and Linux performance specialists to use for monitoring and analyzing performance data, including: * CPU utiliz

系統技術業餘研究 » iotop統計linux下per程序的IO活動

Linux下的IO統計工具如iostat, nmon等大多數是隻能統計到per裝置的讀寫情況, 如果你想知道每個程序是如何使用IO的就比較麻煩. 當然如果你會systemtap, 或者blktrace這些事情難不到你, 但是沒專用工具總不是很舒服的. 幸運的是Linux 2.6.20核心以後提供了

系統技術業餘研究 » latencytop深度瞭解Linux系統的延遲

我們在系統調優或者定位問題的時候,經常會發現多執行緒程式的效率很低,但是又不知道問題出在哪裡,就知道上下文切換很多,但是為什麼上下文切換,是誰導致切換,我們就不知道了。上下文切換可以用dstat這樣的工具檢視,比如: $dstat ----total-cpu-usage---- -dsk/tot

系統技術業餘研究 » Understanding Linux CPU Load 資料彙總

最近關注線上CPU load的人挺多,很多人覺得load太高系統就有問題,就想各種辦法來折騰。其實在我看來load只是系統CPU執行佇列的在執行程序數的近似值, 如下圖: 對於Unix發展的初期,機器的效能比較差,CPU核數也少,參考意義比較大。現在的機器都是非常強悍的,CPU,記憶體,IO各個

系統技術業餘研究 » Linux下新系統呼叫sync_file_range

我們在做資料庫程式或者IO密集型的程式的時候,通常在更新的時候,比如說資料庫程式,希望更新有一定的安全性,我們會在更新操作結束的時候呼叫fsync或者fdatasync來flush資料到持久裝置去。而且通常是以頁面為單位,16K一次或者4K一次。 安全性保證了,但是效能就有很大的損害。而且我們更新

系統技術業餘研究 » Linux檔案預讀分析以及評估對系統的影響

Linux系統很重要的一個性能提升點就是它的Pagecache, 因為記憶體比IO快太多了,所以大家都想進辦法來利用這個cache。 檔案系統也不例外,為了達到高效能,檔案讀取通常採用預讀來預測使用者的行為,把使用者可能需要的資料預先讀取到cache去,達到高效能的目的。 Linux各個發行版re

系統技術業餘研究 » Linux快取記憶體使用率調查

Linux的快取記憶體pagecache對效能的影響至關重要,但是實際系統中我們的利用率如何呢,特別是具體到每個裝置的利用情況。 從下圖我們可以很清楚的看到: 我們知道IO請求由vfs發起,經過pagecache快取,擋不住的就落實到io裝置去,那麼統計這個利用率就很簡單。 我們只要知道擋不住的

系統技術業餘研究 » 實驗Erlang語法對應的opcode 讓對erlang理解更深

Erlang作為一門FP語言,和傳統的語言結構一樣, 有模組, 有函式, 有語句, 有判斷, 有迴圈, 還有特別的模式匹配。 那麼這些在底層是如何運作的。 我在底下給大家做個簡單的實驗,讓大家一窺內部的細節,讓大家寫碼的時候知道個大概。 erlang的VM作為register based的VM,

系統技術業餘研究 » Linux下方便的socket讀寫檢視器(socktop)

晚上 雕樑 說要找個工具來調查下unix域套接字的傳送和接受情況,比如說A程式是否送出,B程式是否接收到,他找了tcpdump ,wireshark什麼的,貌似都不支援。 這時候還是偉大的systemtap來救助了。 因為所有的socket通訊都是通過socket介面來的,任何family的通訊

系統技術業餘研究 » Linux下誰在消耗我們的cache

Linux下對檔案的訪問和裝置的訪問通常會被cache起來加快訪問速度,這個是系統的預設行為。 而cache需要耗費我們的記憶體,雖然這個記憶體最後可以通過echo 3>/proc/sys/vm/drop_caches這樣的命令來主動釋放。但是有時候我們還是需要理解誰消耗了我們的記憶體。 我

系統技術業餘研究 » Linux系統記憶體相關資訊獲取

大型的伺服器,特別是資料庫伺服器的主要瓶頸主要在記憶體,CPU,以及IO上。CPU是可再生資源,不夠用等等就有了;記憶體和土地一樣是不可再生資源,被佔用了,後續的使用必須等到該資源釋放.而IO也非常依賴於記憶體的使用情況,故記憶體的倒騰效率會大大影響伺服器的效率,那麼瞭解伺服器記憶體的使用情況就非

系統技術業餘研究 » 洞悉Linux系統軟硬體配置

我們在做伺服器的時候,老大扔給你一臺機器,要你在上面開發。通常伺服器軟體是非常依賴於系統的軟硬體的,軟體通常是要緊貼硬體的特性,如果我們不能瞭解機器的硬體,我們就無法高效的開發。 比如說想知道Linux的系統的版本,CPU有幾個,記憶體多少大, 機器什麼型號,Raid卡什麼型號,硬碟有幾個,檔案系

系統技術業餘研究 » Linux下誰在切換我們的程序

我們在做Linux伺服器的時候經常會需要知道誰在做程序切換,什麼原因需要做程序切換。 因為程序切換的代價很高,我給出一個LMbench測試出來的數字: Context switching – times in microseconds – smaller is better ———————————

系統技術業餘研究 » 用systemtap來修改下linux核心變數的值

我們在探索linux核心的時候,經常需要調整下變數的值,看它對系統的影響。如果這個值沒有透過/proc來修改的話,那隻能編譯核心。這個步驟是非常繁瑣的。現在我們有systemtap這個利器來幫忙了。 演示如下: 我們通過修改過 extern int sysctl_tcp_fin_timeout;的

系統技術業餘研究 » Linux下pstack的實現

Linux下有時候我們需要知道一個程序在做什麼,比如說程式不正常的時候,他到底在幹嗎?最直接的方法就是打印出他所有執行緒的呼叫棧,這樣我們從棧再配合程式程式碼就知道程式在幹嗎了。 Linux下這個工具叫做pstack. 使用方法是 # pstack Usage: pstack <proce

系統技術業餘研究 » Inside Erlang VM(需要知道的VM原理)

公司培訓用的文件, 對於Erlang的VM會有個大體的認識, 方便設計和使用Erlang. 點解下載pdf格式的文件 Post Footer automatically generated by wp-posturl plugin for wordpress.

系統技術業餘研究 » Linux下試驗大頁面對映(MAP_HUGETLB)

Linux對大頁面記憶體的引入對減少TLB的失效效果不錯,特別是記憶體大而密集型的程式,比如說在資料庫中的使用。innodb引擎就支援大頁面記憶體,具體使用可參見 這裡。 大頁面更詳細的資料可以參考: Documentation/vm/hugetlbpage.txt 過去使用大頁面記憶體主要透過h

系統技術業餘研究 » itop更方便的瞭解Linux下中斷情況

乘著公司搬家的功夫,寫點東西! 在作網路程式的時候, 經常需要了解interrupts和軟中斷的平衡情況, 需要知道每秒有多少中斷髮生,發生在哪個cpu上. Linux下中斷來源可以從 /proc/interrupts 中瞭解到: $ cat /proc/interrupts

系統技術業餘研究 » Linux 2.6.38 User

Linux核心裡面自帶非常多的加密模組,這是模組經過調優效能非常高, 而且現在又很多硬體本身支援加密功能,比如intel的CPU支援AES加密指令,那些核心的那幫人知道更好如何利用這些硬體更快的完成加密功能的, 他們寫的這些硬體的驅動在drivers/crypto目錄裡. 所以如果我們能在使用者