基于Linux系统的性能测试
性能測試:CPU內存,硬盤IO讀寫,帶寬速度,UnixBench
一、CPU物理個數、內核、超線程、多核心
? ? ??1、登錄Terminal,執行:cat /proc/cpuinfo,就會顯示出主機的CPU詳細參數,如內核、頻率、型號等等,以下是我Linux 系統主機的CPU:
? ? ? ? ? ? ?
? ? ? ?2、主要參數physical_id表示物理CPU個數,cpu cores是內核數,Siblings 表示位于這一物理封裝上的邏輯處理器的數量,它們可能支持也可能不支持超線程(HT)技術。
? ? ? ?3、如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支持超線程(HT)技術。如果有兩個或兩個以上的邏輯處理器擁有 相同的 physical id,但是 core id 不同,則說明這是一個多內核處理器。
? ? ? ?4、如果“siblings”和“cpu cores”一致,則說明不支持超線程,或者超線程未打開。如果“siblings”是“cpu cores”的兩倍,則說明支持超線程,并且超 線程已打開。
? ? ???5、直接查看邏輯CPU的個數,執行:cat /proc/cpuinfo |grep 'physical id' |sort |uniq
? ? ? ?6、直接查看CPU的型號,執行:cat /proc/cpuinfo |grep 'model name' |sort |uniq
? ? ? ?7、單個CPU的內核數,執行:cat /proc/cpuinfo |grep 'cpu cores' |sort |uniq
? ? ? ?8、總的CPU線程數,執行:cat /proc/cpuinfo |grep 'processor'
? ? ? ? ? ?
? ? ? ?
二、內存大小、交換空間、高速緩存、實際使用內存
? ? ??1、查看主機的內存信息,執行:cat /proc/meminfo,主要是看內存大小、交換空間、高速緩存。
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ?2、主機實際使用內存大小。Linux管理內存的機制是這樣的:無論物理內存有多大,Linux 都將其充份利用,將一些程序調用過的硬盤數據讀入內存,利用內存讀寫的高速特性來提高Linux系統的數據訪問性能。
? ? ? ?3、即Linux會利用空閑的物理內存,劃分出一部份空間,做為 cache 和 buffers ,以此提高數據訪問性能。cache主要用來減少對磁盤的I/O操作。 所以我們經常能夠看到一個總內存為8GB的Linux VPS測試出來占用的內存也是8GB。
? ? ? ?4、那么如何才能知道Linux真正占用的內存是多少呢?執行命令:free –m
? ? ? ? ??
? ? ? ?5、計算主機真實的使用內存方法是:Total-Free-Cached=真實使用內存,即1016912-18584-206944=791384,表示我的主機真實使用的內存是 791384MB。
三、磁盤IO讀寫速度測試
? ? ??1、磁盤IO,即輸入/輸出(Input/Output),這是測試磁盤性能一個重要指標。
? ? ? ?2、測試主機磁盤IO的性能可以執行以下兩個命令:
? ? ? ? ? ? dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
? ? ? ? ? ? dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync
? ? ? ?3、conv=fdatasync與oflag=dsync的區別在于:sync函數只是將所有修改過的塊緩沖區排入寫隊列,然后就返回,它并不等待實際寫磁盤操作結束。
? ? ? ?4、而fsync函數只對由文件描述符filedes指定的單一文件起作用,并且等待寫磁盤操作結束,然后返回。這是我電腦的硬盤IO測試結果。
? ? ? ??
四、速度測試:上傳下載速度、服務器帶寬
? ? ??測試VPS主機入口與出口的帶寬一鍵腳本,執行命令:
? ? ? ? ? ? wget https://github.com/sivel/speedtest-cli/raw/master/speedtest_cli.py
? ? ? ? ? ? python speedtest_cli.py --share
? ? ? ??
五、性能綜合測試:UnixBench跑分工具測試
? ? ??1、UnixBench是一款開源的測試 unix 系統基本性能的工具,是比較通用的測試性能的工具,Unixbench的主要測試項目有:系統調用、讀寫、進程、圖形化測試、2D、3D、管道、運算、C庫等系統基準性能提供測試數據。
? ? ? 2、UnixBench測試的結果不僅僅只是CPU,內存,或者磁盤為基準,還取決于硬件,操作系統版本,編譯器,測試系統各個方面一系列的性能,然后將每個 測試結果和一個基準值進行比較,得到一個索引值,所有測試項目的索引值結合在一起形成一個測試分值。 ? ? ? ??
? ? ? 3、UnixBench測試執行以下命令:?
? ? ? ? ? ? wget http://teddysun.com/wp-content/uploads/unixbench.sh
? ? ? ? ? ? chmod +x unixbench.sh
? ? ? ? ? ? ./unixbench.sh
? ? ? 4、測試時間可能會比較長,請耐心等待。最后UnixBench會詳細列出各個測試項目的得分情況,以及主機性能的綜合跑分結果。? 如下圖,得分為879.7。
? ??
? ? ??這些測試的結果有一個指數值(INDEX ,如520),這個值是測試系統的測試結果與一個基線系統測試結果比較得到的指數值,這樣比原始值更容易得到參考價值,測試集合里面所有的測試得到的指數值結合起來得到整個系統的指數值。
? ? ? ?對于測試結果,說明如下:
? ? ??
總結
以上是生活随笔為你收集整理的基于Linux系统的性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何去除PDF文档的编辑密码?
- 下一篇: 安装 XAMPP 进行方便集成开发