- 论坛徽章:
- 0
|
如果只是内存使用到4个G那么无所谓的,因为unix的内存是尽量使用空白页,如果有4个G内存,那么基本上都会用 ...
spook 发表于 2011-08-23 13:11 ![]()
主要是程序是个调度程序,4G内存会导致FORK函数返回变慢,到了4G大概FORK返回要2秒左右,这样程序就越来越慢,到最后只能重启。
这个是用svmon查看的。。。。
一启动程序是:- Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
- 689434 schedserv 160371 65589 2192 158080 Y Y N
- PageSize Inuse Pin Pgsp Virtual
- s 4 KB 72835 5 0 65264
- m 64 KB 1375 3 137 1705
- Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
- 0 0 work kernel (lgpg_vsid=0) L 16 16 0 16
- 63a7e5 11 work text data BSS heap s 36712 0 0 36712
- b3846 12 work text data BSS heap s 23822 0 0 23822
- 2c70b0 90000000 work shared library text m 1370 0 137 1700
- dcc79 - clnt /dev/etl2_cx_lv:4456457 s 4309 0 - -
- 4ab313 10 clnt text data BSS heap, s 2873 0 - -
- /dev/etl2_cx_lv:2162744
- 4001 9ffffffd work shared library s 1762 0 0 1762
- 7acbef 77000000 work default shmat/mmap s 1537 0 0 1537
- 75c1d3 90020014 work shared library s 851 0 0 851
- 65a7fd 9001000a work shared library data s 323 0 0 323
- 40b523 - clnt /dev/etl2_cx_lv:10205015 s 227 0 - -
- ffa29 - clnt /dev/etl2_cx_lv:10205000 s 113 0 - -
- 67a7f5 80020014 work USLA heap s 110 0 0 110
- 436766 f00000002 work process private m 5 3 0 5
- 7527bf ffffffff work application stack s 61 0 0 61
- 410104 9ffffffe work shared library s 31 0 0 31
- 65b3b7 - clnt /dev/etl2_cx_lv:10205006 s 23 0 - -
- 6a4bf0 - work s 21 5 0 21
- 20e6e8 70000000 work default shmat/mmap s 17 0 0 17
- 170858 - clnt /dev/etl2_cx_lv:8093093 s 13 0 - -
- 7181c2 9fffffff clnt USLA text,/dev/hd2:167978 s 12 0 - -
- 1ee810 70000001 work default shmat/mmap s 7 0 0 7
- 9284f 8fffffff work private load data s 6 0 0 6
- 126822 70000002 work default shmat/mmap s 2 0 0 2
- 52a721 70000003 work default shmat/mmap s 2 0 0 2
- 16085c - clnt /dev/etl2_cx_lv:16397 s 1 0 - -
- 7165ae fffffffc work application stack s 0 0 0 0
- 17c85b - clnt /dev/etl2_cx_lv:3760045 s 0 0 - -
- 1f2817 fffffffd work application stack s 0 0 0 0
- 535b0d fffffff4 work application stack s 0 0 0 0
- 67e7f4 fffffff7 work application stack s 0 0 0 0
- 6727f7 fffffff8 work application stack s 0 0 0 0
- 566732 fffffff1 work application stack s 0 0 0 0
- 4a2543 fffffff0 work application stack s 0 0 0 0
- 10a829 fffffffa work application stack s 0 0 0 0
- 75e7bc fffffff5 work application stack s 0 0 0 0
- 7c29dc - clnt /dev/etl2_cx_lv:10284758 s 0 0 - -
- 122823 fffffff9 work application stack s 0 0 0 0
- 41276f fffffff3 work application stack s 0 0 0 0
- 48e748 fffffff2 work application stack s 0 0 0 0
- 15283f fffffffe work application stack s 0 0 0 0
- 26c89f - clnt /dev/etl2_cx_lv:8938182 s 0 0 - -
- 7367a6 fffffffb work application stack s 0 0 0 0
- 70a7a9 fffffff6 work application stack s 0 0 0 0
复制代码 运行2天后就成了这样:- 9e86e 13 work text data BSS heap s 65536 0 0 65536
- 4a2101 12 work text data BSS heap s 65536 0 0 65536
- 6e89e8 16 work text data BSS heap s 65536 0 0 65536
- 5a555a 14 work text data BSS heap s 65536 0 0 65536
- 29d4a8 15 work text data BSS heap s 65536 0 0 65536
- a9078 17 work text data BSS heap s 38581 0 0 38581 <==
- dda20 11 work text data BSS heap s 32751 0 0 32751
- 76758b 18 work text data BSS heap s 343 0 0 343 <==
- 147867 19 work text data BSS heap s 112 0 0 112 <==
复制代码 我们把代码里面所有NEW方法都替换了。然后又用了insure++和valgrind查了程序,提示有问题的也都改了。。
我往一个容器写数据,几十万条记录也就200多M 。
郁闷死了,如果是程序内存泄露,能够达到4G这么大,这个泄露点应该很明显才对。 |
|