服务器性能测试备忘录(一)

服务器性能测试备忘录(一)

最近又搞了一下性能测试,发现有一些命令或者是注意事项又忘记了。导致又重新上网查了一遍。觉得这样实在是很没有效率,所以还是整理一下自己写个备忘录,以后查起来也方便一些。

准备阶段

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,第一部分先写到这里。这一部分基本都是准备性能测试时会使用的命令,至于性能测试时监控和排查问题时使用的命令放到后面单独讲。