2009/1/13 Matt Sealey
Rob OpenSuSE wrote:
2009/1/12 Larry Stotler
: On Mon, Jan 12, 2009 at 3:02 PM, Matt Sealey
wrote: If you have 4GB or 8GB of memory it is nothing to care about, but users put in this memory to run applications, not to provide space for 50 boot services which sit idle, most of which are only there to provide people with large amounts of memory to get things done quicker. This is not very friendly to those who run in more constrained environments. I'm not looking for GNOME etc. to run in 128MB
Linux does not swap!!! It's a demand paged virtual memory system. Those "idle" processes, will relinquish their clean pages, to be re-read in on demand by page faults from disk, and anonymous dirty pages can be saved in the (misnamed) swap space by the VM.
I really don't think there is any distinction to be made here. You swap a page in physical memory for one on some backing store. The terminology is naive but correct.
Except that as someone of your background knows, that a "swapping" ie. evicting all memory pages of a process, saving them to disk, is a different memory technique, commonly used in past on multi-user systems when physical memory was larger than the logical address space to processes. The point is, those "idle processes" do not sit there, hogging RAM.
However loading anything else in started really going at the page file.
On a slow disk this is an absolute nightmare.
I've seen heavy usage of swap space, on 256MiB system, under KDE4 desktop, FF3 and YaST software management, which really did want nearer 400MiB, than 256MiB. And I actually used the slowest disk I have that actually does UDMA correctly (a 4GB model circa 1999). But what are reasonable expectations in this situation? It is clear that switching between those tasks, that the working set size is exceeded, and a delay is inevitable. The system did not go into a meltdown where, it took minutes rather than seconds to become responsive.
There are two schools of thought on this; one, is that applications should be stored in RAM and RAM only until significant memory pressure arises. The other, is that data should live mostly in swap and only be put into RAM when it's actually used.
Windows likes to keep it the second way and there is a kernel developer who likes swappiness set really high (I forget his name.. was it Andrew Morton?). As long as you have enough of a swap cache and a fast enough disk this is awesome. I actually think this is the right way to do it.
However, if your disk is slow (USB, NFS, DMA-less ATA), you're pretty much tied to how fast your disk is, which is.. very bad indeed. Couple it with a low amount of memory, and you basically have no way out.
It's whether you write dirty pages to swap, which are not backed by files, for instance executable programs. When you look for a new page, it's always faster to throw away a clean or a cache page. The consequence of keeping all written to data pages in memory, and not having them saved by the backing store, is that you never reclaim those pages, from the idle processes, complained about. My test backs up Andrew Morton, without swappiness being set high, swap space is unused, which means the system is doing more page faults than it otherwise would because, it's not able to evict data pages of little used processes in favour of working set of running processes, and OS cache. Where it makes sense to have swappiness set low, is when nightly (luncthime?) batch jobs are run, doing things like index builds for desktop searches, locate or something like a virus scanner, which are done once, and you know that the files they read in won't be reaccessed; though there are ways for applications to hint that they're "read once". That reduces the perceivable lag, when an idle desktop application is used and needs to reclaim memory. Small memory 128MB, slow disk (USB, NFS, PIO-ATA) and running large programs, look like badly specified configuration to me. Not having anon data saved in a swap space isn't going to help things. You still will seek like crazy, servicing page faults.
This is the same problem that windows has. Too many apps think they are the most important thing you'll never use.
Any Specifics?
There are none :D
This is the problem in the thread. I've mentioned specific counter examples, to disagree with certain generalisations, and suggested configuration issues (candidates like nepomuk / beagle). Nothing constructive comes out of generalisations.
We're not talking anymore about "KDE uses too much memory as an application" but "SUSE loads far too much on boot". It's not just the desktop.. it's every service, every module, that is installed by default and enabled by default, which significantly reduces the amount of memory available for future tasks.
The thing is, the system runs fine with 256 MiB, if you're not expecting to both browse and run other applications. These idle processes should only affect boot times. Finally OS provides a "Net Install" which allows fine-grained choices, and you can install a minimal system. If you have a low amount of memory it's unreasonable not to use that option, but expect defaults made for Live CD or a general desktop install to be altered, that inconveniences the less knowledgeable desktop user. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org