Hi, all
I meet a big issue when use zmq at RHEL 6.4, 64bits, it occupies too may
virtual memory, zeromq version is 3.2.4,
hope someone can help me analyze, following is my test code.
At RHEL5.6, 64bits(2.6.18-238.el5) VSZ=36532 ,RSS=1352, but at
RHEL6.4(2.6.32-358.el6.x86_64) VSZ=104468 RSS=1540
by using pmap, I find a 65M block virtual memory that hasn't at RHEL5.6, it
appeared when bind socket in zmq.
Who ever meet this issue?
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 4 4 0 r-x-- mqtest
0000000000600000 4 4 4 rw--- mqtest
0000000000e42000 132 12 12 rw--- [ anon ]
000000392a000000 128 108 0 r-x-- ld-2.12.so
000000392a21f000 4 4 4 r---- ld-2.12.so
000000392a220000 4 4 4 rw--- ld-2.12.so
000000392a221000 4 4 4 rw--- [ anon ]
000000392a800000 1576 412 0 r-x-- libc-2.12.so
000000392a98a000 2044 0 0 ----- libc-2.12.so
000000392ab89000 16 16 8 r---- libc-2.12.so
000000392ab8d000 4 4 4 rw--- libc-2.12.so
000000392ab8e000 20 16 16 rw--- [ anon ]
000000392ac00000 92 60 0 r-x-- libpthread-2.12.so
000000392ac17000 2048 0 0 ----- libpthread-2.12.so
000000392ae17000 4 4 4 r---- libpthread-2.12.so
000000392ae18000 4 4 4 rw--- libpthread-2.12.so
000000392ae19000 16 4 4 rw--- [ anon ]
000000392b400000 524 20 0 r-x-- libm-2.12.so
000000392b483000 2044 0 0 ----- libm-2.12.so
000000392b682000 4 4 4 r---- libm-2.12.so
000000392b683000 4 4 4 rw--- libm-2.12.so
000000392b800000 28 20 0 r-x-- librt-2.12.so
000000392b807000 2044 0 0 ----- librt-2.12.so
000000392ba06000 4 4 4 r---- librt-2.12.so
000000392ba07000 4 4 4 rw--- librt-2.12.so
000000392ec00000 88 16 0 r-x-- libgcc_s-4.4.7-20120601.so.1
000000392ec16000 2044 0 0 ----- libgcc_s-4.4.7-20120601.so.1
000000392ee15000 4 4 4 rw--- libgcc_s-4.4.7-20120601.so.1
0000003c37800000 928 468 0 r-x-- libstdc++.so.6.0.13
0000003c378e8000 2048 0 0 ----- libstdc++.so.6.0.13
0000003c37ae8000 28 28 28 r---- libstdc++.so.6.0.13
0000003c37aef000 8 8 8 rw--- libstdc++.so.6.0.13
0000003c37af1000 84 12 12 rw--- [ anon ]
00007ff834000000 132 4 4 rw--- [ anon ]
00007ff834021000 65404 0 0 ----- [ anon ]
00007ff8395b6000 4 0 0 ----- [ anon ]
00007ff8395b7000 10240 12 12 rw--- [ anon ]
00007ff839fb7000 4 0 0 ----- [ anon ]
00007ff839fb8000 10268 40 40 rw--- [ anon ]
00007ff83a9ca000 264 188 0 r-x-- libzmq.so.3
00007ff83aa0c000 2044 0 0 ----- libzmq.so.3
00007ff83ac0b000 20 20 20 rw--- libzmq.so.3
00007ff83ac10000 4 4 4 rw--- [ anon ]
00007fff2e3e8000 84 16 16 rw--- [ stack ]
00007fff2e3ff000 4 4 0 r-x-- [ anon ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
---------------- ------ ------ ------
#include "zmq.h"
#define QUEUE_HWM 5000
#define DEFAULT_PUB_ADDR "tcp://127.0.0.1:6666"
static void *mq_context
static void *publisher
static int init_publisher()
int init_publisher()
{
mq_context = zmq_ctx_new()
zmq_ctx_set(mq_context,ZMQ_MAX_SOCKETS, 3)
publisher = zmq_socket(mq_context, ZMQ_PUB)
if (NULL == publisher)
{
return -1
}
int ret = zmq_bind(publisher, DEFAULT_PUB_ADDR)
if (ret != 0)
{
zmq_close(publisher)
return -1
}
int out_queue = 5 * QUEUE_HWM
zmq_setsockopt(publisher, ZMQ_SNDHWM, &out_queue, sizeof(out_queue))
return 0
}
int main()
{
if (-1 == init_publisher())
return -1
while(1)
{
sleep(5)
}
return 0
}
Thanks,
jwu
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev