64bit milter grows huge in vsize?
Posted on 2011-05-12
I have developed milter application to use with postfix.
I'm running it on two 32bit scientific Linux 6 and one 64bit.
On the 64bit the application grows very large on it's vsize. The results is like
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13184 mail 20 0 1074m 1256 628 S 0.0 0.0 0:00.00 milter+
It's not a big problem, since RSS is pretty small and does not grow over time. Actually the vsize does not grow as well.
But on 32bit systems I don't observe this behavior.
I have looked as /proc/pid/smaps and found out many following map pairs.
7f26cc021000-7f26d0000000 ---p 00000000 00:00 0
Size: 65404 kB
Rss: 0 kB
7f26d0000000-7f26d0021000 rw-p 00000000 00:00 0
Size: 132 kB
Rss: 36 kB
please note, that the 64M blocks have no rights assigned!?
At first I thought it was threads stack, but first my application does not run such many threads(verified with proc), second I have run 'ulimit -s 4096' and seeing few 4M maps like:
7f26c7c00000-7f26c8000000 rw-p 00000000 00:00 0
Size: 4096 kB
Rss: 24 kB
7f26c8000000-7f26c8021000 rw-p 00000000 00:00 0
Size: 132 kB
Rss: 12 kB
note, that there's still 132K map just after.
If i run 32bit compiled milter on 64bit system, those right-less maps are still there, but only 892K sized?
Any thoughts what those maps are?