綜合能力
性能測試(Unixbench)
[root@localhost] $ ./Run
計算
查看當前CPU負載(uptime)
[root@localhost] $ uptime
測試單cpu計算能力(bc)
[root@localhost] $ time echo "scale=5000;4*a(1)" | bc -l -q
內存
查看當前內存使用的情況的狀態(tài)(free)
[root@localhost] $ free -m
進程對內存的占用情況(pmap)
[root@localhost] $ pmap -d 35713 # 查看進程35713占用內存的情況
磁盤
磁盤IO測試(dd)
測試磁盤的IO寫速度
# time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct
測試磁盤的IO讀速度
# dd if=test.dbf bs=8k count=300000 of=/dev/null
表示每次寫入/讀取8k的數(shù)據(jù)撤嫩,執(zhí)行300000次
實時查看各磁盤的io(iostat)
[root@localhost] $ yum install sysstat
[root@localhost] $ iostat -x 1 100
對磁盤iops的測試(fio)
安裝fio
[root@localhost] $ yum install fio
ioengine: 負載引擎,我們一般使用libaio寻拂,發(fā)起異步IO請求祭钉。
bs: IO大小
direct: 直寫慌核,繞過操作系統(tǒng)Cache垮卓。因為我們測試的是硬盤,而不是操作系統(tǒng)的Cache诬滩,所以設置為1疼鸟。
rw: 讀寫模式空镜,有順序寫write姑裂、順序讀read舶斧、隨機寫randwrite茴厉、隨機讀randread等矾缓。
size: 尋址空間稻爬,IO會落在 [0, size)這個區(qū)間的硬盤空間上桅锄。這是一個可以影響IOPS的參數(shù)友瘤。一般設置為硬盤的大小辫秧。
filename: 測試對象
iodepth: 隊列深度,只有使用libaio時才有意義甥桂。這是一個可以影響IOPS的參數(shù)格嘁。
runtime: 測試時長
4K隨機寫測試
[root@localhost] $ fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randwrite -size=100G -filename=/dev/vdb
-name="EBS 4KB randwrite test" -iodepth=32 -runtime=60
4K隨機讀測試
[root@localhost] $ fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randread -size=100G -filename=/dev/vdb
-name="EBS 4KB randread test" -iodepth=8 -runtime=60
512KB順序寫測試
[root@localhost] $ fio -ioengine=libaio -bs=512k -direct=1 -thread -rw=write -size=100G -filename=/dev/vdb
-name="EBS 512KB seqwrite test" -iodepth=64 -runtime=60
進程對磁盤的讀寫情況(iotop)
安裝iotop
[root@localhost] $ yum install iotop
運行iotop查看進程對磁盤的讀寫
[root@localhost] $ iotop #查看全部進程的磁盤讀寫情況
[root@localhost] $ iotop -o #實時查看當前進程對磁盤的讀寫(推薦)
[root@localhost] $ iotop -p 34323 #查看進程號為34323對磁盤的讀寫情況
監(jiān)控告警可以使用如下命令獲取io的數(shù)據(jù)
[root@localhost] $ iotop -botqqq --iter=3
網(wǎng)絡
網(wǎng)絡測試(iperf)
啟動服務端
[root@localhost] $ yum install iperf3 -y
[root@localhost] $ iperf3 -s
客戶端進行測試
[root@localhost] $ yum install iperf3 -y
[root@localhost] $ iperf3 -c 10.2.2.2 -P 5
以上默認為作TCP測試狡孔,如果要UDP測試苗膝,服務端啟動與客戶端測試都需要加上-u
## 服務端
iperf3 -s -u
## 客戶端
iperf3 -c 10.2.2.2 -P 5 -u
網(wǎng)絡測試(qperf)
啟動服務端
[root@localhost] $ yum install qperf -y
[root@localhost] $ qperf
客戶端進行測試網(wǎng)絡延時
[root@localhost] $ yum install qperf -y
[root@localhost] $ qperf 10.2.2.2 -t 100 -oo msg_size:8:256K:*2 tcp_lat
客戶端進行測試網(wǎng)絡帶寬
[root@localhost] $ yum install qperf -y
[root@localhost] $ qperf 10.2.2.2 -t 100 -oo msg_size:8:256K:*2 tcp_bw
延時與帶寬可以一起測試
[root@localhost] $ qperf 10.2.2.2 -t 100 -oo msg_size:8:256K:*2 tcp_bw tcp_lat
網(wǎng)卡流量監(jiān)測(nload)
安裝nload
[root@localhost] $ yum install nload
監(jiān)測網(wǎng)卡流量輸入及輸出
[root@localhost] $ nload eth0 eth1
DNS服務壓測工具(queryperf)
queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]
-d: 后面接上一個文件离唐,文件的內容是用戶對DNS的請求亥鬓,一行為一條請求嵌戈,所以為了測試熟呛,我們可以在里面寫上幾千幾萬條庵朝。
-s: DNS服務器地址
-p: DNS服務器端口
-q: 請求多少次
使用vim命令先創(chuàng)建一個請求文件:vim querytest.txt
www.example.com A
example.com NS
tftp.example.com CNAME
blog.example.com A
....
# 600萬行
執(zhí)行測試命令
[root@localhost] $ queryperf -d querytest.txt -s 192.168.0.6