服务器性能测试备忘录(一)
最近又搞了一下性能测试,发现有一些命令或者是注意事项又忘记了。导致又重新上网查了一遍。觉得这样实在是很没有效率,所以还是整理一下自己写个备忘录,以后查起来也方便一些。
准备阶段
1. 查看服务器参数
在测试之前一般都是要看一下测试服务器的参数,这样能对服务器的性能有个大概的预估。一般比较关心的是CPU、内存、网卡、硬盘这几个参数。
a. 查看CPU信息
$ cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 4 Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz
其实使用cat /proc/cpuinfo就可以看到CPU的详细信息,但是很多信息对我来说是无用的,我只想知道CPU的型号和核数就可以了。当然如果想要知道更详细的CPU信息,那么就可以用lscpu:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 1 CPU socket(s): 8 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 45 Stepping: 7 CPU MHz: 2194.971 BogoMIPS: 4388.41 Hypervisor vendor: Xen Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 15360K NUMA node0 CPU(s): 0-7
这里会看到CPU更详细的信息。
b. 查看内存信息
$ cat /proc/meminfo
MemTotal: 8191908 kB
MemFree: 1767552 kB
Buffers: 815540 kB
Cached: 1907692 kB
…
`</pre>
这个也是会显示出很多信息,比较常用的是前四项:MemTotal, MemFree, Buffers, Cached。当然如果你只关注这几项,还可以使用free命令来查看内存的使用情况。
<pre class="lang:sh decode:true ">`$ free
total used free shared buffers cached
Mem: 8191908 6424488 1767420 0 815580 1908204
-/+ buffers/cache: 3700704 4491204
Swap: 0 0 0
`</pre>
c. 查看网卡信息
<pre class="lang:sh decode:true ">`/sbin/ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:3E:00:11:12
inet addr:10.125.13.171 Bcast:10.125.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:584832095 errors:0 dropped:0 overruns:0 frame:0
TX packets:372672049 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:462552962703 (430.7 GiB) TX bytes:440375675876 (410.1 GiB)
Interrupt:18
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:208327178 errors:0 dropped:0 overruns:0 frame:0
TX packets:208327178 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:387809519667 (361.1 GiB) TX bytes:387809519667 (361.1 GiB)
`</pre>
看以看到有一个网卡eth0,如果想看网卡的速度,那么就可以用下面的命令:
<pre class="lang:sh decode:true ">`$ ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full #支持千兆半双工,全双工模式
Supported pause frame use: No
Supports auto-negotiation: Yes #支持自适应模式,一般都支持
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes #默认使用自适应模式
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
.....
Speed: 100Mb/s #现在网卡的速度是100Mb,网卡使用自适应模式,所以推测路由是100Mb,导致网卡从支持千兆,变成要支持百兆
Duplex: Full #全双工
.....
Link detected: yes #表示有网线连接,和路由是通的
`</pre>
如果ethool看不到的话,那么很有可能网卡是虚拟网卡。这种情况一般网卡带宽都是和其他虚拟机共享的,所以最好实际测试一下比较准确。
d. 查看硬盘信息
<pre class="lang:sh decode:true ">`$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 243G 63G 168G 28% /
tmpfs 4.0G 100K 4.0G 1% /dev/shm
`</pre>
硬盘信息就比较直观,这个一般在发生日志不可写或者其他类似问题的时候需要确认一下磁盘空间是否满了。
e. 查看机器信息
<pre class="lang:sh decode:true ">`$ sudo dmidecode -q
BIOS Information
Vendor: Xen
Version: 4.0.1
Release Date: 12/16/2014
Address: 0xE8000
Runtime Size: 96 kB
ROM Size: 64 kB
Characteristics:
PCI is supported
EDD is supported
Targeted content distribution is supported
BIOS Revision: 4.0
System Information
Manufacturer: Xen
Product Name: HVM domU
Version: 4.0.1
Serial Number: d008a82d-d1b9-7246-b613-57fc82a565c5
UUID: D008A82D-D1B9-7246-B613-57FC82A565C5
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
...
dmidecode命令是以一种可读的方式dump出机器的DMI(Desktop Management Interface)信息。这些信息包括了BIOS、系统、硬件等信息。
OK,第一部分先写到这里。这一部分基本都是准备性能测试时会使用的命令,至于性能测试时监控和排查问题时使用的命令放到后面单独讲。