上善若水,不浮不沉!
分类: LINUX
2014-02-19 16:06:23
根据前文的介绍,可以通过ipvsadm命令和LVS内核打交道;
除此之外,我们还可以通过proc参数,来 配置全局参数 和 获取统计信息;
下面介绍一下几个常用的proc参数;
1. /proc/net/ip_vs
获取当前LVS内核配置,包括VS和RS相关信息;同ipvsadm
-ln;
IP Virtual Server version 1.2.1 (size=1048576) -
这里size是指连接hash表大小;
Prot LocalAddress:Port Scheduler Flags
->
RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 0ADC0108:0050
rr - vs信息,vip和vport 16进制,调度算法rr;
->
C0A8010B:0050 Route 1 0 0 -
rs信息,rip和rport 16进制,权值为1,
->
C0A8010A:0050 Route 1 0 0 -
ActiveConn是指established状态的连接个数;
- InActConn是指非established状态的连接个数;
2./proc/net/ip_vs_conn
获取所有连接信息,建议不要用该命令,因为连接数很多时,CPU开销会很大;
Pro FromIP FPrt
ToIP TPrt DestIP DPrt
State Expires
- 用户ip和port vs
ip和port rs ip和port tcp状态机状态 连接超时剩余的时间
3./proc/net/ip_vs_stats
获取 连接/数据包/字节数
的全局统计信息;
第一行是 累计值;
第二行是 速率,统计周期为2s;
Total
Incoming Outgoing Incoming Outgoing
Conns Packets Packets Bytes Bytes
0 0 0 0 0
Conns/s Pkts/s Pkts/s Bytes/s Bytes/s
0 0 0 0 0
4./proc/sys/net/ipv4/vs/expire_nodest_conn
默认值为0,当LVS转发数据包,发现目的RS无效(删除)时,会丢弃该数据包,但不删除相应连接;这样设计的考虑是,RS恢复时,如果Client和RS
socket还没有超时,则 可以继续通讯;
如果将该参数置1,则马上释放相应 连接;
个人建议采用默认值,配置为0;
5.
/proc/sys/net/ipv4/vs/expire_quiescent_template
默认值为0,当RS的weight值=0(如,健康检测失败,应用程序将RS weight置0)时,会话保持的新建连接 还会继续调度到该RS上;
如果配置为1,则马上将 会话保持的连接模板 置为无效,重新调度新的RS;
如果有会话保持的业务,建议该值 配置为1;
6.
/proc/sys/net/ipv4/vs/nat_icmp_send
默认值为0;
如果置为1,当LVS收到RS发送出来的数据包,但没有找到相应连接时,则发送目的不可达(端口不可达)的ICMP给RS;
建议采用默认值,为0;
7. /proc/sys/net/ipv4/vs/sync_threshold
默认值为
3 50;
这个参数和连接同步相关,LVS收到3个包后,开始启动同步;之后,每收到50个包,启动一次同步;
可以根据LVS的流量,可以调整连接同步的频率,从而控制同步的系统开销;
8. /proc/sys/net/ipv4/vs/下其它参数
用于“内存不足时释放连接”,但当前服务器内存很大,这些参数已经无用;