性能測試(CPU、內存、IO)
~~~~~~CPU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CPU指標為運算處理能力
一、cat /ptoc/cpuinfo
1、直接查看邏輯CPU的個數,執行:cat /proc/cpuinfo |grep 'physical id' |sort |uniq
結果:記錄
2、直接查看CPU的型號,執行:cat /proc/cpuinfo |grep 'model name' |sort |uniq
結果:記錄
3、單個CPU的內核數,執行:cat /proc/cpuinfo |grep 'cpu cores' |sort |uniq
結果:記錄
4、總的CPU線程數,執行:cat /proc/cpuinfo |grep 'processor'
結果:記錄
二、使用Super PI
是利用CPU的浮點運算能力來計算出π(圓周率),所以目前普遍被超頻玩家用做測試系統穩定性和測試CPU計算完后特定位數圓周率所需的時間。
wget http://superpi.ilbello.com/pi/super_pi.tar.bz2
tar -jxvf super_pi.tar.bz2
./super_pi 20
20為位數。表示要算2的多少次方位,如通常要算小數點后1M位。
結果:
root@localhost.example. ~# ./super_pi 20
Version 2.0 of the super_pi for Linux OS
Fortran source program was translated into C program with version 19981204 of
f2c, then generated C source program was optimized manually.
pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
compilation.
------ Started super_pi run : Tue May 16 10:47:18 CST 2017
Start of PI calculation up to 1048576 decimal digits
End of initialization. Time= 0.200 Sec.
I= 1 L= 0 Time= 0.498 Sec.
I= 2 L= 0 Time= 0.539 Sec.
I= 3 L= 1 Time= 0.536 Sec.
I= 4 L= 2 Time= 0.535 Sec.
I= 5 L= 5 Time= 0.532 Sec.
I= 6 L= 10 Time= 0.537 Sec.
I= 7 L= 21 Time= 0.529 Sec.
I= 8 L= 43 Time= 0.542 Sec.
I= 9 L= 87 Time= 0.532 Sec.
I=10 L= 174 Time= 0.582 Sec.
I=11 L= 349 Time= 0.974 Sec.
I=12 L= 698 Time= 1.379 Sec.
I=13 L= 1396 Time= 1.094 Sec.
I=14 L= 2794 Time= 1.353 Sec.
I=15 L= 5588 Time= 0.955 Sec.
I=16 L= 11176 Time= 1.408 Sec.
I=17 L= 22353 Time= 1.067 Sec.
I=18 L= 44707 Time= 1.242 Sec.
I=19 L= 89415 Time= 0.901 Sec.
End of main loop
End of calculation. Time= 17.033 Sec.
End of data output. Time= 0.070 Sec.
Total calculation(I/O) time= 17.103( 0.521) Sec.
------ Ended super_pi run : Tue May 16 10:47:36 CST 2017
~~~~~~CPU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~內存~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
內存指標為穩定性
free -m (主要是看內存大小、交換空間、高速緩存)
結果:記錄
memtest不但可以徹底的檢測出內存的穩定度,還可同時測試記憶的儲存與檢索數據的能力,讓你可以確實掌控到目前你機器上正在使用的內存到底可不可信賴。
wget http://pyropus.ca/software/memtester/old-versions/memtester-4.3.0.tar.gz
tar -xzvf memtester-4.3.0.tar.gz
cd memtester-4.3.0
make && make install
例:./memtester 2048 5
2048表示測試的內存大小,單位是M,1表示次數。
如果2048不接受的,把它縮小就可以了。先運行一次,如果沒有問題就把次數增加即可。
監控:vmstat、top都可以看到
結果:
root@localhost.example. ~/memtester-4.3.0# ./memtester 1024 1
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 1024MB (1073741824 bytes)
got 1024MB (1073741824 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : ok
Walking Ones : ok
Walking Zeroes : ok
8-bit Writes : ok
16-bit Writes : ok
Done.
~~~~~~內存~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~IO~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、簡介
測試IOPS,推薦使用fio(官網地址:http://freshmeat.net/projects/fio/)
fio命令說明:
filename=/dev/sdb1 #測試文件名稱,通常選擇需要測試的盤的data目錄
direct=1 #測試過程繞過機器自帶的buffer。使測試結果更真實
rw=randwrite #測試隨機寫的I/O
rw=randrw #測試隨機寫和讀的I/O
bs=16k #單次io的塊文件大小為16k
bsrange=512-2048 #同上,提定數據塊的大小范圍
size=5G #本次的測試文件大小為5g,以每次4k的io進行測試
numjobs=30 #本次的測試線程為30個
runtime=1000 #測試時間1000秒,如果不寫則一直將5g文件分4k每次寫完為止
ioengine=psync #io引擎使用psync方式
rwmixwrite=30 #在混合讀寫的模式下,寫占30%
group_reporting #關於顯示結果的,匯總每個進程的信息
lockmem=1G #只使用1g內存進行測試
zero_buffers #用0初始化系統buffer
nrfiles=8 #每個進程生成文件的數量
測試結果,主要關注bw和iops結果
bw:磁盤的吞吐量,這個是順序讀寫考察的重點
iops:磁盤的每秒讀寫次數,這個是隨機讀寫考察的重點
二、安裝
wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
yum install libaio-devel
tar -zxvf fio-2.0.7.tar.gz
cd fio-2.0.7
make
make install
三、測試步驟(舉例5種方式)
隨機讀:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=1000 -group_reporting -name=mytest
順序讀:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
隨機寫:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
順序寫:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
混合隨機讀寫:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
下列:AWS-美東機房c5.large機型IO測試
~~~~~~IO~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~