根据前文的介绍,可以通过ipvsadm命令和LVS内核打交道;除此之外,我们还可以通过proc参数,来 配置全局参数和获取统计信息.本文转自阿里--LVS专家吴佳明。
配置全局参数,位于目录/proc/sys/net/ipv4/vs/下;
获取统计信息,位于目录/proc/net/下;
下面介绍一下几个常用的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/下其它参数
用于“内存不足时释放连接”,但当前服务器内存很大,这些参数已经无用.
阅读(1905) | 评论(0) | 转发(0) |