Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uwm.edu!cs.utexas.edu!rice!sun-spots-request From: murthy@algron.cs.cornell.edu (Chet Murthy) Newsgroups: comp.sys.sun Subject: SparcStation I Memory Leak? Keywords: Hardware Message-ID: <8780@brazos.Rice.edu> Date: 12 Jun 90 02:03:38 GMT Sender: root@rice.edu Organization: Sun-Spots Lines: 49 Approved: Sun-Spots@rice.edu X-Sun-Spots-Digest: Volume 9, Issue 211, message 4 I have been running a large LISP application on a SparcStation I for a while now, and I have noticed some really awful problems with the allocation of memory as time goes on. Here's the scenario: I have a Sparcstation I with 16MB of memory, 2 100MB internal prodrives, and an external 700MB SCSI drive (HP). I use 120MB of the internal drives for swapping and all the HP drive also. So I start up a Lucid LISP process which takes up 256MB of swap. Initially, I usually get around 8MB of memory (as shown by ps), but that drops off to around 3.9MB pretty soon. If somebody else starts up a semi-large program, my RSS allocation drops further, and even if they finish their application, I don't get any more memory. After about a day or 2, my LISP is getting less than 2MB of RSS, on a 16MB machine! Now, I thought that perhaps this was because of the particular kind of LISP job I was running. But when I run the same exact job on a SUN-4/260 Sparc with 32MB of memory, even in the presence of other large, compute-intensive jobs my working set never drops below 10MB, and often hovers near 21MB. Moreover, I can see the noticeable slowdown from day 1 to day 2 to day 3, as my program is getting less and less memory. This makes the Sparc almost useless by the end of the third day - just to check, I killed my LISP job and restarted it after the Sparc had been running 3 days, and it got around 3-4MB of memory - down from 8MB initially. A friend noticed that if you write a C program that malloc's 64MB, and then repeatedly copy a random amount of bytes between 1 and 256 between two random pointers into that data space just allocated, say, 100,000 times, pretty soon your C program will end up with a working set of around a quarter of a Meg on a 16MB workstation. Does anybody know WHY the Sparc is so brain-damaged? I don't see how this could be anything other than a memory leak. As I mentioned before, if I kill the LISP and restart it, I don't get nearly as much RSS as I had the first time around. So it doesn't seem possible that it could be anything other than a leak in the kernel. What's going wrong? Why is my Sparc useless after 3 days? murthy@cs.cornell.edu