From owner-freebsd-questions Wed Jul 31 21:20:21 2002 Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A14F437B400 for ; Wed, 31 Jul 2002 21:20:13 -0700 (PDT) Received: from wantadilla.lemis.com (wantadilla.lemis.com [192.109.197.80]) by mx1.FreeBSD.org (Postfix) with ESMTP id AA88643E77 for ; Wed, 31 Jul 2002 21:20:10 -0700 (PDT) (envelope-from grog@lemis.com) Received: by wantadilla.lemis.com (Postfix, from userid 1004) id A3F7F812EA; Thu, 1 Aug 2002 13:50:08 +0930 (CST) Date: Thu, 1 Aug 2002 13:50:08 +0930 From: Greg 'groggy' Lehey To: Rob Ellis Cc: freebsd-questions@freebsd.org Subject: Re: 1GB ram, how much SWAP? Message-ID: <20020801042008.GD48188@wantadilla.lemis.com> References: <20020731171728.GH22253@web.ca> <87u1mfk9me.fsf@pooh.int> <20020731194842.GL22253@web.ca> <44ado7ejh7.fsf@be-well.ilk.org> <20020731211506.GN22253@web.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020731211506.GN22253@web.ca> User-Agent: Mutt/1.3.99i Organization: The FreeBSD Project Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.FreeBSD.org/ X-PGP-Fingerprint: 9A1B 8202 BCCE B846 F92F 09AC 22E6 F290 507A 4223 Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Wednesday, 31 July 2002 at 17:15:07 -0400, Rob Ellis wrote: >>> the consensus seems to be that if you want to be able to get >>> crash dumps, you need a single partition == to your memory >> >> 64k more than your memory, actually... > > there was some disagreement about that in that freebsd-hackers thread: > > http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=268723+271430+/usr/local/www/db/text/2002/freebsd-hackers/20020714.freebsd-hackers For some reasons, I don't see the followup to these messages. In order to take a dump, you need space for the dump and also space for header information. I'm pretty sure that the headers need nothing like 64 kB, but I haven't had time to go and look at the code, and what's 64 kB when we're talking about at least 1 GB of swap. Note also that the dump gets written at the end of the swap partition, so if you have more swap, the dump can survive a little swapping without getting overwritten. >>> in the meantime, 1GB ram + .5GB swap still seems like lots? >> >> Depends on how much virtual address space you're using at once. > > yes. it would be nice to know ballpark requirements for different > types of servers / what kind of capacities you get with freebsd > and various hardware configurations. I'm attaching a text version of part of a chapter of the upcoming new edition of "The Complete FreeBSD", in text form. You'll notice that my recommendation was 1 MB more than the size of memory. I'd welcome feedback. Greg -- When replying to this message, please copy the original recipients. If you don't, I may ignore the reply. For more information, see http://www.lemis.com/questions.html How much swap space? ____________________ Apart from files, you should also have at least one swap partition on your disk. It's very difficult to predict how much swap space you need. The automatic option gave you 522 MB, slightly more than twice the size of physical memory. Maybe you can get by with 64 MB. Maybe you'll need 2 GB. How do you decide? It's almost impossible to know in advance what your system will require. Here are some considerations: o Swap space is needed for all pages of virtual memory which contain data that is not locked in memory and which can't be recreated automatically. This is the majority of virtual memory in the system. o Some people use rules of thumb like ``2.5 times the size of physical memory, or 64 MB, whichever is bigger''. These rules work only by making assumptions about your workload. If you're using more than 2.5 times as much swap space as physical memory, performance will suffer. o Known memory hogs are X11 and integrated graphical programs such as Netscape and StarOffice. If you use these, you will probably need more swap space. Older UNIX-based hogs such as Emacs and the GNU C compiler (gcc) are not in the same league. o You can add additional swap partitions on other disks. This has the additional advantage of balancing the disk load if your machine swaps a lot. o About the only ways to change the size of a swap partition are to add another partition or to reinstall the system, so if you're not sure, a little bit more won't do any harm, but too little can really be a problem. o If your system panics, and memory dumping is enabled, it will write the contents of memory to the swap partition. This will obviously not work if your swap partition is smaller than main memory. Under these circumstances, the system refuses to dump, so you will not be able to find the cause of the problems. The dump routines can only dump to a single partition, so you need one that is big enough. If you have 512 MB of memory and two swap partitions of 384 MB each, you still will not be able to dump. o Even with light memory loads, the virtual memory system slowly pages out data in preparation for a possible sudden demand for memory. This means that it can be more responsive to such requests. As a result, you should have at least as much swap as memory. A couple of examples might make this clearer: 1. Some years ago I used to run X, StarOffice, Netscape and a whole lot of other memory-hungry applications on an old 486 with 16 MB. Sure, it's really slow, especially when changing from one application to another, but it works. Since there's not much memory, it uses a lot of swap. To view the current swap usage, use pstat. Here's a typical view of this machine's swap space: $ pstat -s Device 1024-blocks Used Avail Capacity Type /dev/da0s1b 122880 65148 57668 53% Interleaved 2. Later, I ran much more stuff on an AMD Athlon with 256 MB of memory. It had lots of swap space, but what I saw was: $ pstat -s Device 1024-blocks Used Avail Capacity Type /dev/ad0s1b 524020 22328 501692 4% Interleaved It's not so important that the Athlon is using less swap: it's using 9% of its memory in swap, whereas the 486 is using 4 times its memory. In a previous edition of this book, I had the example of a Pentium with 96 MB of memory, which used 43 MB of swap. Look at it from a different point, and it makes more sense: swap makes up for the lack of real memory, so the 486 is using a total of 80 MB of memory, the Pentium is using 140 MB, and the Athlon is using 280 MB. In other words, there is a tendency to be able to say ``the more main memory you have, the less swap you need''. If, however, you look at it from the point of view of acceptable performance, you will hear things like ``you need at least one-third of your virtual memory in real memory''. That makes sense from a performance point of view, assuming all processes are relatively active. And, of course, it's another way of saying ``take twice as much swap as real memory''. In summary: be generous in allocating swap space. If you have the choice, use more. If you really can't make up your mind, take 512 MB of swap space or one MB more than the maximum memory size you are likely to install. -- When replying to this message, please copy the original recipients. If you don't, I may ignore the reply. For more information, see http://www.lemis.com/questions.html See complete headers for address and phone numbers To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message