2013/8/23 Julian Anastasov <ja@xxxxxx>:
> On Fri, 23 Aug 2013, Drunkard Zhang wrote:
>> 2013/8/22 Julian Anastasov <ja@xxxxxx>:
>> > for a very short period, they live up to 1 jiffie, eg. 10ms.
>> > Also, WRR should be reliable for OPS while other
>> > schedulers (eg. *LC) are not suitable.
>> I noticed this too. While ops working, the InActConn is always
>> changing too, if it's fixed, the ops is not working.
> All traffic to director stops?
No,ingress traffic is always on going.
>> > Do you see the same problem with ipvsadm -Ln --stats ?
>> > ipvsadm -Z may be needed to zero the stats after restoring all
>> > rules. "Conns" counter in stats should be according to WRR
>> > weights, it shows the scheduler decisions.
>> After every restore, the stats also zeroed, right? While, ops still not
> 1. Configure/Restore rules
> 2. Zero stats: ./ipvsadm -Z
> 3. sleep 5
> 4. ./ipvsadm -ln --stats
>> vs3 ~/pkgs # ./ipvsadm -Z
>> vs3 ~/pkgs # ./ipvsadm -ln --stats -u [snipped]
>> Prot LocalAddress:Port Conns InPkts OutPkts InBytes
>> -> RemoteAddress:Port
>> UDP x.x.x.120:514 0 12497040 0 2572M 0
>> -> x.x.x.65:514 0 3975 0 394171 0
> It is really strange to have Conns=0 in stats.
> I just tested OPS on 32-bit x86 (virtualbox) with plain
> 3.10 kernel and there is no problem with CPS, Conns, etc,
> WRR is scheduling according to weights. Do you have a
> daemon that changes weights dynamically?
I'm running x86_64 kernel. I compared kernel config of my two servers,
a big difference between them is CONFIG_PREEMPT. While CONFIG_PREEMPT
is disabled, trying plenty times of "ipvsadm -C && ipvsadm -R <
rules-with-ops" will finally succeed, but with CONFIG_PREEMPT enabled
it's too hard to get --ops work. I will test again on my "good" server
another day to prove my guessing.
Is there any good debug method for this? Tuning
/proc/sys/net/ipv4/vs/debug_level didn't gave me much.
I use keepalived to manage the ipvs configuration, but as vrrp
heartbeat going on and no realserver up/down, it won't interact with
ipvs, right? So I can temporarily modify ipvs rule via ipvsadm after
keepalived started, and the modified rules didn't changed as time fly,
so do the --ops setting.
> More things to check:
> - if traffic stops check if some real server is hijacking the
> traffic from director due to ARP problem in the real server.
> Or explain how exactly OPS stops to work, do you see other
> traffic for the VIP coming to director during such problem?
No possibility, I configured VIP on lo of realserver.
for IP in $VIP; do
ip addr add $IP/32 dev $VIP_NIC brd $IP
sysctl -q -w net.ipv4.conf.lo.arp_ignore=1
sysctl -q -w net.ipv4.conf.lo.arp_announce=2
sysctl -q -w net.ipv4.conf.all.arp_ignore=1
sysctl -q -w net.ipv4.conf.all.arp_announce=2
> - Build ipvsadm with 'make HAVE_NL=0' to check if Conns=0 problem
> in --stats output is netlink related. This builds ipvsadm without
> netlink support but use this binary only to see stats, not
> for configuration.
> - show output from 'cat /proc/net/ip_vs_stats_percpu' to see
> the kernel's stats and rates. Note that these stats are not
> zeroed while stats in /proc/net/ip_vs_stats are zeroed.
vs3 ~ # cat /proc/net/ip_vs_stats_percpu
Total Incoming Outgoing Incoming Outgoing
CPU Conns Packets Packets Bytes Bytes
0 8F11751F 70455AB5 0 10AA672610D 0
1 1A780554 1A780554 0 E2AB71BCA 0
2 0 0 0 0 0
3 BF0E0B BF0E0B 0 4B7E409C 0
4 244BAF54 244BAF54 0 2224071265 0
5 2360B25C 2360B25B 0 1715A45DB3 0
6 0 0 0 0 0
7 E88FEF E88FEF 0 6ECC3067 0
8 1E2477AE 1E2477AE 0 12726CDE2E 0
9 10BD4D97 10BD4D97 0 A35650024 0
A BE81916 BE81914 0 6D9FD6CEF 0
B 4474D837 4474D836 0 3FCEC43B56 0
C 0 0 0 0 0
D 0 0 0 0 0
E 0 0 0 0 0
F 0 0 0 0 0
~ 721BAF1B 534F94AD 0 1B61556B50B 0
Conns/s Pkts/s Pkts/s Bytes/s Bytes/s
1120F 1120F 0 C1FEB1 0
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html