测试一下lvs fullnat的性能(工作记录)

来源:互联网 发布:java中md5解密代码 编辑:程序博客网 时间:2024/05/22 13:57
参考资料的地址在于:
参考资料:http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY 

测试考虑

1.     测试NAT/DR/TUNNEL 兼容性

2.     测试TCP/UDP/ICMP/AH/ESP 数据包

3.     测试IPV6

4.     测试Template/persistent

使用FULLNAT方式TCP序列号的转换:

正常流程:选择local address以后,需要重新计算seq,以满足同一个TCP流中的SYN包序列号不同的单向递增的要求:

为什么要重新计算syn,是因为两边处理的时间不相同,syn命中的session,重新计算seq

 步骤:

增加新的虚拟机,需要升级内核,安装httpd服务

怎么分配vsip地址(申请)

[root@lvs-test-dev021-jylt keepalived]# find / -name keepalived     
/etc/sysconfig/keepalived
/etc/keepalived
/etc/rc.d/init.d/keepalived
/var/lock/subsys/keepalived
/usr/sbin/keepalived

几个地方的keepalived的作用是什么:

/etc/sysconfig/keepalived:配置文件

ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4194304)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.153.79.120:80 rr synproxy
  -> 10.153.74.118:80             FullNat 1      0          0         
  -> 10.153.74.139:80             FullNat 1      0          0         
  -> 10.153.74.140:80             FullNat 1      0          0         
  -> 10.153.74.141:80             FullNat 1      0          0         
  -> 10.153.74.142:80             FullNat 1      0          0 

这个是正确的,但是访问vip 是不成功的,wget不到,原因在于

还有curl 的问题

webbench qps


qps

QPS每秒查询率(Query Per Second)
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力

测试记录:


 webbench http://10.153.79.120/
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://10.153.79.120/
1 client, running 30 sec.

Speed=105880 pages/min, 493753 bytes/sec.
Requests: 52940 susceed, 0 failed.

[root@lvs-test-dev020-jylt webbench-1.5]# webbench -c 100 http://10.153.79.120/
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://10.153.79.120/
100 clients, running 30 sec.

Speed=1283054 pages/min, 5983260 bytes/sec.
Requests: 641527 susceed, 0 failed.

测试过程中遇到的问题:

1,HTTP_GET不配置timeout导致CPU占用过高的问题

2、间歇丢包的问题:是因为vip那台 虚拟机上面的eth0 eth1 eth2分别配置了地址,只有一个地址是已经配置好的Local ip ,导致lvs收到的报文会分发到三块网卡上。根据ospf路由协议

测试服务器性能要用到的命令:

top

htop

mpstat -P ALL 2 10000

  1. 与 vmstat 相似,mpstat 命令还产生与 CPU 有关的统计信息,因此所有与 CPU 问题有关的讨论也都适用于 mpstat。  
  2. 当您看到较低的 %idle 数字时,您知道出现了 CPU 不足的问题。当您看到较高的 %iowait 数字时,  
  3. 您知道在当前负载下 I/O 子系统出现了某些问题。该信息对于解决 Oracle 数据库性能问题非常方便。

测试的时候加上real server 的优化:

lvs的 ulimit -n  是多少?

测试pps

cat ip_vs_stats
   Total Incoming Outgoing         Incoming         Outgoing
   Conns  Packets  Packets            Bytes            Bytes
            ADB9            36140            35FF0           BCA8F3          1470892

 Conns/s   Pkts/s   Pkts/s          Bytes/s          Bytes/s
    1374     60E1     60B7           15205C           249B73

1、使用netperf测试   

怎么查看linux中哪个文件占用的空间大   du  tomcat6  df -h

du -sk * | sort -n

查看某一端口号是否被占用:

lsof -i:80

netperf遇到的问题

Could not install signal catcher for sig 32, errno 22

OSPF原理:

两台lvs同时工作:

在外面的网络中利用ospf协议,使得外部的路由器将请求分给两台lvs。

查看路由状态:

怎么配置多队列网卡:
[root@10.153.72.2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.27.0.0      172.27.0.9      255.255.255.252 UG    101    0        0 eth1
172.27.0.4      172.27.0.9      255.255.255.252 UG    101    0        0 eth1
172.27.0.8      0.0.0.0         255.255.255.252 U     0      0        0 eth1
172.27.0.16     172.27.0.9      255.255.255.252 UG    101    0        0 eth1
172.27.0.20     172.27.0.9      255.255.255.252 UG    101    0        0 eth1
10.153.72.0     0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
10.0.0.0        10.153.79.254   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         172.27.0.9      0.0.0.0         UG    0      0        0 eth1


查看路由的意义:

Linux内核优化:添加cpu的负载分担: 查看文件:

cat /etc/rc.local 

sh /root/set_irq_affinity.sh eth0

sh /root/set_irq_affinity.sh eth1


观察两台的连接数是否相同:

ipvsadm -ln --stats
IP Virtual Server version 1.2.1 (size=4194304)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  119.188.143.208:80             423377 23306801 23303195    1300M    2260M
  -> 10.153.74.85:80                 39794  2418318  2416851  134956K  237316K
  -> 10.153.74.139:80                43227  2417344  2417010  134888K  237832K
  -> 10.153.74.140:80                43305  2381131  2381023  132866K  234285K
  -> 10.153.74.141:80                40987  2329503  2329424  129985K  229206K
  -> 10.153.74.142:80                42012  2166551  2166474  120892K  213172K
  -> 10.153.74.249:80                40956  2292522  2292131  127919K  218630K
  -> 10.153.75.54:80                 40352  2039735  2039721  113819K  195405K
  -> 10.153.75.55:80                 43811  2432538  2432455  135734K  233030K
  -> 10.153.75.56:80                 43539  2396925  2396914  133748K  229623K
  -> 10.153.75.152:80                44709  2428418  2428151  135503K  231651K

认识rc.local 



 




0 0