vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi, everybody, The mystery of enormous memory leak in 10.0uc6 is finally solved. Many thanks to IBM Informix development team, namely John Lengyel, for informal, quick and very professional investigation. It turned out, the problem was introduced by the new functionality: 'Private Memory Caches for Virtual Processors'. This functionality is targeted for Cheetah, but is introduced in 10.0xC5. We didn't run into it with xC5, because we found another problem in xC5 and stopped testing it. By mistake, the new functionality is turned 'on' by default. This functionality allowes IDS to allocate large blocks of memory to private VP caches... To disable this functionality, one can set the new $ONCONFIG parameter VP_MEMORY_CACHE_KB to 0 and restart IDS or do it online with 'onmode -wf VP_MEMORY_CACHE_KB=0' Most probably, IBM will fix this very shortly. To reproduce the problem, one can do the following: ----------- -- CREATE ANSI-MODE DATABASE and connect----- set isolation to dirty read; set lock mode to wait 5; create function str2list( str lvarchar,separator char default ',') returning list(lvarchar not null); define lst list(lvarchar not null); define dummy lvarchar; if separator = ',' then let dummy = 'list{'||str||'}'; else let dummy = 'list{'||replace(str,separator,',')||'}'; end if; let lst = dummy; return lst; end function; commit; create procedure test_spl(); define i int; define lst list(lvarchar not null); for i in (1 to 1000000) let lst = str2list('1,2,3,4,5,6,7,8,9'); end for; end procedure; commit; execute procedure test_spl(); commit; ------------------------------------------ This block would cause a 200-MB memory leak... Actually, the problem might also exist in 10.0xC5 Alexey Sonkin -----Original Message----- From: informix-list-bounces@iiug.org [mailto:informix-list-bounces@iiug.org] On Behalf Of david@smooth1.co.uk Please let us know what Tech Support say! |