[Keepalived-devel] keepalived memory leak problem on Standby VRRP
Status: Beta
Brought to you by:
acassen
|
From: Cho S. Y. <csy...@ya...> - 2011-01-07 00:18:22
|
Hi,
I am investigating the memory leak problem after posting that issue.
According to Joachim, I applied the patch and then I didn't have the memory
error when I tested the binary with valgrind tool.
After the patched binary was applied on Active and Standby VRRP system, the
memory leak situation occurred again on Standby system.
There are two VRRP instances in our test environment.
I logged the memory usage and raw socket receive queue every 10 minutes for
3 test cases on Standby system.
(Case 1 : Two VRRP instances)
Memory leak increased and Raw socket Recv-Q increased.
-----------------------------------------------------------------------
Thu Dec 30 11:39:28 KST 2010
total used free shared buffers cached
Mem: 1026688 454408 572280 0 14132 88208
-/+ buffers/cache: 352068 674620
Swap: 0 0 0
raw 119612880 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
raw 119612880 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Thu Dec 30 11:49:28 KST 2010
total used free shared buffers cached
Mem: 1026688 457056 569632 0 14152 88212
-/+ buffers/cache: 354692 671996
Swap: 0 0 0
raw 120716880 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
raw 120716880 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Thu Dec 30 11:59:28 KST 2010
total used free shared buffers cached
Mem: 1026688 459828 566860 0 14160 88212
-/+ buffers/cache: 357456 669232
Swap: 0 0 0
raw 121820880 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
raw 121820880 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
(Case 2 : One VRRP instance)
Memory leak increased and Raw socket Recv-Q increased. The increase was
slower than Two VRRP instances
-----------------------------------------------------------------------
Fri Dec 31 16:39:50 KST 2010
total used free shared buffers cached
Mem: 1026688 391176 635512 0 16948 89516
-/+ buffers/cache: 284712 741976
Swap: 0 0 0
raw 183705600 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Fri Dec 31 16:49:50 KST 2010
total used free shared buffers cached
Mem: 1026688 392624 634064 0 16964 89516
-/+ buffers/cache: 286144 740544
Swap: 0 0 0
raw 184809600 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Fri Dec 31 16:59:50 KST 2010
total used free shared buffers cached
Mem: 1026688 393932 632756 0 16980 89516
-/+ buffers/cache: 287436 739252
Swap: 0 0 0
raw 185913600 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Fri Dec 31 17:09:50 KST 2010
total used free shared buffers cached
Mem: 1026688 395404 631284 0 17008 89516
-/+ buffers/cache: 288880 737808
Swap: 0 0 0
raw 187017600 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
(Case 3 : Two VRRP instances with Input filter)
I filtered the multicast packet and then I made the raw socket Recv-Q not
increase.
Memory leak did not occurred. But VRRP function didn't work correctly. ^^;
-A INPUT -d 224.0.0.18/32 -j DROP
-----------------------------------------------------------------------
Mon Jan 3 11:21:28 KST 2011
total used free shared buffers cached
Mem: 1026688 407504 619184 0 21740 95388
-/+ buffers/cache: 290376 736312
Swap: 0 0 0
raw 188412320 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Mon Jan 3 11:31:28 KST 2011
total used free shared buffers cached
Mem: 1026688 408980 617708 0 21752 95420
-/+ buffers/cache: 291808 734880
Swap: 0 0 0
raw 188412320 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Mon Jan 3 11:41:28 KST 2011
total used free shared buffers cached
Mem: 1026688 408980 617708 0 21764 95452
-/+ buffers/cache: 291764 734924
Swap: 0 0 0
raw 188412320 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
Mem: 1026688 406804 619884 0 21720 95368
-/+ buffers/cache: 289716 736972
Swap: 0 0 0
raw 188412320 0 *:vrrp *:* 7
raw 0 0 *:vrrp *:* 7
As the result, I think the memory leak is related with raw socket receive-Q.
Because the receive queue is not processed by system, the queue occupied the
memory.
How can I clear the receive queue?
Thanks,
Cho Soon Yim
|