View previous topic :: View next topic |
Author |
Message |
log Apprentice
Joined: 16 Jun 2003 Posts: 168 Location: Adelaide, Australia
|
Posted: Fri Jun 18, 2004 1:56 am Post subject: |
|
|
After I upgraded to 1GB and enabled high memory, I did not notice a drop in performance. Although the costomised software im using uses more ram than CPU...oh well, im happy |
|
Back to top |
|
|
sapphirecat Guru
Joined: 15 Jan 2003 Posts: 376
|
Posted: Fri Jun 18, 2004 3:51 pm Post subject: |
|
|
log wrote: | After I upgraded to 1GB and enabled high memory, I did not notice a drop in performance. Although the costomised software im using uses more ram than CPU...oh well, im happy |
Alright, then. I'll mark it "mostly theoretical"; AFAIK when Linux has to look up something in the page tables with high memory support, it has to go through three layers rather than two. _________________ Former Gentoo user; switched to Kubuntu 7.04 when I got sick of waiting on gcc. Chance of thread necro if you reply now approaching 100%... |
|
Back to top |
|
|
i_hate_your_os Tux's lil' helper
Joined: 29 Aug 2002 Posts: 128 Location: Manhattan Beach, CA
|
Posted: Fri Jun 18, 2004 6:09 pm Post subject: |
|
|
The .88G limitation was news to me. Great thread, thanks! _________________ -IHYOS
"All laws which are repugnant to the constitution are null and void."
-Marbury vs. Madison, 5 US (2 Cranch) 137, 174, 176, (1803) |
|
Back to top |
|
|
nadamsieee Guru
Joined: 30 May 2003 Posts: 340 Location: Atlanta, GA, USA
|
Posted: Fri Jun 18, 2004 6:49 pm Post subject: |
|
|
sapphirecat wrote: | Alright, then. I'll mark it "mostly theoretical"; AFAIK when Linux has to look up something in the page tables with high memory support, it has to go through three layers rather than two. |
There is definately a real, live performance hit introduced by the extra layer. There is nothing theoretical about it. What is debatable is whether the hit is ever noticable by us low frequency humans. Just nit-picking. _________________ nadams (at) ieee (dot) org |
|
Back to top |
|
|
tommy_fila Guru
Joined: 19 Nov 2003 Posts: 450 Location: Phoenix, AZ
|
Posted: Sat Jun 19, 2004 3:43 pm Post subject: |
|
|
For everyone who is wondering why their swappiness settings are always changing to seemingly random numbers:
Direct quote from bk0
Quote: | gentoo-dev-sources (and probably other gentoo 2.6 kernels) contains the Con Kolivas autoregulated swappiness patch. This means that the kernel automatically adjusts the /proc/sys/vm/swappiness value as needed during runtime, so any changes you make will be clobbered next time it updates. A good explanation of this patch and how it works is here on KernelTrap.
I repeat: With gentoo-dev-sources it is neither necessary nor possible to permanently adjust the swappiness value. It's taken care of automatically, no need to worry. |
This was taken from the following thread:
https://forums.gentoo.org/viewtopic.php?p=1258300#1258300 _________________ "What goes on in life, that goes for eternity." |
|
Back to top |
|
|
Chonhulio n00b
Joined: 04 Mar 2003 Posts: 6 Location: Germany
|
Posted: Sat Jun 19, 2004 4:02 pm Post subject: |
|
|
Quote: | There is definately a real, live performance hit introduced by the extra layer. There is nothing theoretical about it. What is debatable is whether the hit is ever noticable by us low frequency humans. Just nit-picking. |
IIRC 3-level page tables are only used when CONFIG_HIGHMEM64G is set in order to support RAM above 4GB (PAE mode).
The usual CONFIG_HIGHMEM4G just changes the adress space layout and adds additional mappings for RAM above 1GB.
So the performance penalty should only occur when actually allocating RAM above 1GB and should be very mild even then.
The major, yet mostly theoretical, downside of CONFIG_HIGHMEM4G is, that the process space per single process is reduced to 2GB. Even if you got 4GB of RAM, each process may only allocate 2GB, unless you enable CONFIG_HIGHMEM64G. However, this should be pretty irrelevant on workstations and most servers.
Additionally some kernel features and 3rd party patches may not work reliably (or at all) on HIGMEM Kernels. Examples are cryptoapi up to 2.6.4, suspend-to-disk up to 2.6.6 and some poorly maintained drivers, including some binary only crap. |
|
Back to top |
|
|
Clansman Tux's lil' helper
Joined: 10 Jan 2004 Posts: 140
|
Posted: Sun Jun 20, 2004 12:21 pm Post subject: |
|
|
hi everyone.
excelent post by sapphirecat!
yet, i think few people that posted here got the original post's point according to the post's replies... overall, about the memory size and occupancy one can conclude:
Having low free memory reported from 'top' DOES NOT MEAN that your system is desperately and unrecoverably occupying all of your memory (or most of it), meaning that you must rush to the nearest and most expensive store to buy another Gb of ram.
The linux kernel has a memory management policy that cleverly tries to use up as much memory as it possibly can, to improve performance. This performance improvement can be very visible if that used memory becomes disk cache because as stated before, hard drive acesses are about 1000 times slower than RAM, so getting disk's data (cache) from ram is very fast. The RAM is the fastest and second biggest memory available outside the cpu.
That big memory cache forcedly used by the linux kernel to avoid wasted memory can be VERY QUICKLY shrinked up to allow user applications to use memory/more memory.
So, having 70Mb of free ram when you have only 1Gb is not a bad thing and does not mean you have to buy new memory to boost performance. You would probably find out that with your new 2Gb of ram, you'd end up having... 100Mb free...
[] |
|
Back to top |
|
|
sanity n00b
Joined: 19 May 2002 Posts: 39 Location: Iowa
|
Posted: Mon Jun 21, 2004 3:23 am Post subject: swappiness |
|
|
I'm still not getting what auto-swappiness optimizes for, but I don't use it anyway.
On all my machines, I sort of take the opposite approach. I set swappiness to 100. This is especially useful on my desktop. Consider: My brother runs GNOME. I run Fluxbox. We run them on different X servers, so that we can swtich off, leaving programs open and running, without sharing settings / giving him access to my settings (PGP key, etc. etc.)
Obviously, when he's on, he uses a lot of RAM. Now suppose I want to play ut2004. You see the problem?
Of course, his stuff can be swapped out. It's not likely to happen, though, unless I'm actually running out of memory, or unless swappiness is quite high. And if he's hogging the RAM, I don't get to use it for buffer/cache, which can really help speed sometimes. (Oops! Firefox crashed! (buggy flash plugin) Oh, but it's cached -- 1-2 seconds and I have a browser again.)
This is also helpful against fragmentation. This may be getting just a bit obsessive, but I use reiser4, and if I'm downloading a 250 meg file and I have 500 megs of RAM, it may very well stay buffered until the download is done, and then be written entirely contiguously.
Basic formula goes like this: if you think have enough RAM, you might set swappiness=0. Like, if you've got 3 gigs of RAM on a desktop machine, and you leave it on all night, cron jobs won't take significantly longer, and they won't push your apps out into swap -- thus, you come back and everything's just as you left it, no waiting around.
If you do not have enough RAM, or if you think you might be wasting some RAM, you might set swappiness=100. Now, all the things you aren't using go to swap, out of the way for things you are using, such as ut2004. The downside? After leaving the computer for awhile, it's quite likely that a cron job or a running download or something has kicked your email, your browser, even your terminal emulator out to swap, and thus, it might take 5 seconds for your computer to come back to life, and another 1-2 seconds each time you bring up a window that you haven't seen in awhile.
My last OS was Windows 98. 5 seconds I can live with, to avoid buying enough RAM to run GNOME, two instances of Fluxbox, 3 X servers, and ut2004. |
|
Back to top |
|
|
sploo22 n00b
Joined: 21 Aug 2003 Posts: 20 Location: Cayman Brac, Cayman Islands
|
Posted: Sun Jun 27, 2004 3:05 pm Post subject: |
|
|
Along these same lines, is it possible to force a program and its assorted libraries to stay in the cache, so e.g. I can have Firefox ready to start up even if I haven't been using it recently? Preferably something more robust than "dd if=/usr/bin/firefox of=/dev/null" every 30 seconds. Does the kernel provide this level of control? _________________ This signature will self-destruct in 10 seconds. Close browser window now to avoid permanent monitor damage. |
|
Back to top |
|
|
Clansman Tux's lil' helper
Joined: 10 Jan 2004 Posts: 140
|
Posted: Sun Jun 27, 2004 8:10 pm Post subject: |
|
|
sploo22 wrote: | Along these same lines, is it possible to force a program and its assorted libraries to stay in the cache, so e.g. I can have Firefox ready to start up even if I haven't been using it recently? Preferably something more robust than "dd if=/usr/bin/firefox of=/dev/null" every 30 seconds. Does the kernel provide this level of control? |
i seriously doubt it. and i don't think the kernel is made to act that way. it would be application-dependant and would require personalized configurations, which is not the case on any of today's kernel.
nevertheless it could become a usable idea, in some patch-package...
[] |
|
Back to top |
|
|
dmitrio Tux's lil' helper
Joined: 10 Dec 2002 Posts: 115 Location: Pago Pago
|
Posted: Mon Jun 28, 2004 5:25 pm Post subject: :. copied to gentoo-wiki.com |
|
|
I have copied this, with permission of sapphirecat and bk0, to gentoo-wiki.com
http://gentoo-wiki.com/Linux_Memory_Management
If you see anything that should be added or changed, feel free to do so.
Thank you for a great HOWTO. _________________
... Leaving ground, destination is unknown,
into the darkness and far away from home,
Will your dream come true and what will you find,
when fate is your guide ... |
|
Back to top |
|
|
solarium_rider Tux's lil' helper
Joined: 23 Jun 2003 Posts: 88 Location: San Francisco
|
Posted: Tue Jun 29, 2004 5:54 am Post subject: |
|
|
I had a quick question, since nothing is really mentioned (explicetely)on whether it's good or not if the swap file is full. Currently, when i try to view a mpeg from the web or something (through mplayer) the whole system becomes laggy (mouse pointer skips bad.) The desktop also seems laggy when I'm running an emerge sync. I'm using vanilla 2.6.6 kernel. Also is it normal for kdeinit to use 30% of my ram (according to top).
Here's what my stuff looks like:
Code: |
ccase@miles ccase $ free -m
total used free shared buffers cached
Mem: 503 495 7 0 4 34
-/+ buffers/cache: 456 46
Swap: 517 517 0
ccase@miles ccase $ uptime
01:49:06 up 16 days, 13:40, 1 user, load average: 0.13, 0.14, 0.17
ccase@miles ccase $ cat /proc/meminfo
MemTotal: 515520 kB
MemFree: 8100 kB
Buffers: 4468 kB
Cached: 35068 kB
SwapCached: 2092 kB
Active: 460344 kB
Inactive: 18756 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 515520 kB
LowFree: 8100 kB
SwapTotal: 530136 kB
SwapFree: 68 kB
Dirty: 8 kB
Writeback: 0 kB
Mapped: 462644 kB
Slab: 15784 kB
Committed_AS: 994508 kB
PageTables: 3592 kB
VmallocTotal: 516056 kB
VmallocUsed: 39604 kB
VmallocChunk: 475300 kB
ccase@miles ccase $ cat /proc/sys/vm/swappiness
60
|
Any recommendations on whether I should switch kernels or just change the swapiness? Do you think my lag issues are cpu or mem related? I was under the impression the 2.6 kernel was suppose to have better scheduler for a desktop system.
Thanks |
|
Back to top |
|
|
Clansman Tux's lil' helper
Joined: 10 Jan 2004 Posts: 140
|
Posted: Tue Jun 29, 2004 7:31 am Post subject: |
|
|
what's your swapiness level? do you set it manually?
you could compile a 2.6.7 kernel and include con kolivas' autoregulated swapiness patch in it. i use it.
or, from kerneltrap.org kerneltrap.org/node/view/3366 andrew morton's patchset with nick piggins' addicion could also help you out.
Quote: | Nick's patchset, which applies against the 2.6.7-mm3 kernel, provides a different CPU scheduler and additional memory management work. For the interested, Nick advises, "if anyone is having swapping or interactivity problems, please try it out. |
[] |
|
Back to top |
|
|
rich0 Developer
Joined: 15 Sep 2002 Posts: 161
|
Posted: Thu Jul 08, 2004 12:15 pm Post subject: |
|
|
solarium_rider wrote: | I had a quick question, since nothing is really mentioned (explicetely)on whether it's good or not if the swap file is full. Currently, when i try to view a mpeg from the web or something (through mplayer) the whole system becomes laggy (mouse pointer skips bad.) The desktop also seems laggy when I'm running an emerge sync. I'm using vanilla 2.6.6 kernel. Also is it normal for kdeinit to use 30% of my ram (according to top).
Here's what my stuff looks like:
<snip>
Any recommendations on whether I should switch kernels or just change the swapiness? Do you think my lag issues are cpu or mem related? I was under the impression the 2.6 kernel was suppose to have better scheduler for a desktop system.
Thanks |
My guess is that swappiness has nothing to do with it - only 34MB of your RAM is used by cache. It looks to me like some processes is hogging a lot of RAM. And if kdeinit is using 30% of your RAM with this much RAM in the system, that would seem odd to me... |
|
Back to top |
|
|
sanity n00b
Joined: 19 May 2002 Posts: 39 Location: Iowa
|
Posted: Fri Jul 09, 2004 3:49 am Post subject: various replies |
|
|
Quote: | my HD is NOT quiet and when the CPU is idle it goes cacheing some of the disk, and very annoying because for 15+ min it's being really noisy . |
For 15+ min? How much swap space do you have? Something tells me that you need more RAM on that thing -- my hd is idle when my box is idle, for the most part, and I only have 512 megs.
Quote: | Everything I have read about swapspace in linux says that it is more effiecient to have a swap partition even if you have a lot or memory. |
Depends. In theory, if you are not using tmpfs and you're on a tiny filesystem (like a floppy or a cd) with much more ram than "hard" space, then swap doesn't add anything.
Only real-world case I can think of is if you can predict that you will never need to have more memory than your total amount of RAM. But by "needing memory", I include disk cache, and more cache is usually better.
Only real-world scenario I can think of where someone should choose not to have swap is if they need the space and/or they are running a very active server, on which almost none of the programs running will ever be idle. _________________ Every time you read a signature, God kills a kitten. |
|
Back to top |
|
|
Rainmaker Veteran
Joined: 12 Feb 2004 Posts: 1650 Location: /home/NL/ehv/
|
Posted: Sun Jul 11, 2004 5:56 am Post subject: |
|
|
Maybe add this bit:
Your system only reports 28 Megs when you actually have 32 Megs. This is because part of the memory is used for the kernel code, and another part of it is "reserved". Check the ouput of dmesg to see how much this is. The less you "built into" your kernel (i.e. use modules) the smaller your kernel gets. _________________ If you can't dazzle them with brilliance, baffle them with bullshit. |
|
Back to top |
|
|
jkruer01 Apprentice
Joined: 15 Jul 2004 Posts: 214 Location: Louisville, KY
|
Posted: Wed Aug 11, 2004 1:26 pm Post subject: |
|
|
Can someone please explain to me what the benefits of swaping out the contents of cache? The purpose of cache is to store content on a higher speed medium so you can access it faster. If you move the cach to the harddrive then doesn't it defeat the purpose of the cache? |
|
Back to top |
|
|
rich0 Developer
Joined: 15 Sep 2002 Posts: 161
|
Posted: Wed Aug 11, 2004 2:34 pm Post subject: |
|
|
jkruer01 wrote: | Can someone please explain to me what the benefits of swaping out the contents of cache?...If you move the cach to the harddrive then doesn't it defeat the purpose of the cache? |
You don't swap out the cache - I don't think any decent OS does that at all.
What the debate is about is swapping out programs in memory in order to make room for cache.
It is undisputed that if idle software needs more RAM than you have physical memory for, then swapping is necessary to load new more-active programs.
What is disputed is whether the system should go ahead and swap out programs that are idle when it does not need that memory to run other programs. By swapping this memory out, it frees up RAM to use as a cache. On the other hand, if you don't swap it out, then if one of those programs wakes up it won't have to be read in.
Neither side is advocating swapping out the cache itself. Linux simply uses unused memory as the cache/buffers. |
|
Back to top |
|
|
jkruer01 Apprentice
Joined: 15 Jul 2004 Posts: 214 Location: Louisville, KY
|
Posted: Wed Aug 11, 2004 5:38 pm Post subject: |
|
|
Your right, I'm sorry. I didn't take enough time to read every word. Now that I went back and read the original post more slowly it makes much more since to me.
Thanks! |
|
Back to top |
|
|
Stieltje Apprentice
Joined: 03 Apr 2003 Posts: 158 Location: The land where the sky is black
|
Posted: Wed Aug 18, 2004 8:02 am Post subject: |
|
|
I guess that gkrellm does not report free mem the same way that does
Code: |
# free -m
total used free shared buffers cached
Mem: 1518 790 728 0 144 415
-/+ buffers/cache: 229 1288
Swap: 4000 0 4000
|
gkrellm reports that I have 1289 MB free...
Anyway, nice post, I guess I won't have to bother about swappiness though I have the latest ck-sources installed (2.6.7-ck5)
/Stieltje _________________ PCs nearly always come with Microsoft Windows as their operating systems, but the "OS," as it is called, can be changed to a non-Microsoft operating system with a little work. |
|
Back to top |
|
|
sapphirecat Guru
Joined: 15 Jan 2003 Posts: 376
|
Posted: Sun Aug 22, 2004 10:32 pm Post subject: |
|
|
Stieltje wrote: | Code: | # free -m
total used free shared buffers cached
Mem: 1518 790 728 0 144 415
-/+ buffers/cache: 229 1288 |
gkrellm reports that I have 1289 MB free... |
Must have been in a different thread that I mentioned this... gkrellm pretty much does the same as free with -/+ buffers/cache; the difference between 1288 and 1289 is probably rounding error. It's also possible to go into gkrellm's memory options and make it show three krells, splitting things into used, buffers, cache, and completely free. _________________ Former Gentoo user; switched to Kubuntu 7.04 when I got sick of waiting on gcc. Chance of thread necro if you reply now approaching 100%... |
|
Back to top |
|
|
Nutterpc Tux's lil' helper
Joined: 02 Feb 2004 Posts: 83
|
Posted: Tue Aug 24, 2004 5:26 am Post subject: |
|
|
after having this problem myself.....I always wondered what I could do to try to counteract it
part of it came by reading available values in sysctl -a
part of it came via research......well........most of it really
Now yes, I will admit I used to have issues with linux seemingly runnin off with all my RAM, and then going to swap, but with 1Gb DDR400 DualChannel.........it shouldn't need to
After nearly a weeks worth of research so far, I've come up whit some fairly drastic changes in sysctl.conf, which, on my machine......are producing very noticeable results
Programs take less time to load, they don't hog Proc time (which they used to beforehang )
CPU just blips every now and then, and Disk doesn;t even move...unless I load a program
And for all those wondering what kernel I'm running, its ck-sources latest: 2.6.8-ck3
Nutterpc
PS: if anyone else running this kernel would like to try my sysctl.conf settings out to help me further finetune them, my email addy should be in my profile......just contact me on msn _________________ If it isn't broke, you ain't tweaked it right
Registered Linux User 353232 |
|
Back to top |
|
|
smg Veteran
Joined: 13 Aug 2004 Posts: 1402 Location: /home/stephan
|
Posted: Tue Oct 26, 2004 10:41 pm Post subject: |
|
|
Mh, I'm just asking me, what's faster for my system, 2*256 DDR-Ram @ 400Mhz working as dual ram modules or making out of this 1GB. Can you recommend me one of this possibilities?
best regards 'ash' _________________ GnuPG-Key-ID: 0xF8C275D4
Fingerprint: 5B6F 134A 189B A24D 342B 0961 8D4B 0230 F8C2 75D4
Code: | perl -WTe '($")=$/;print qq(@{[reverse('0'..'100')]}$/BOOM!$/);' |
|
|
Back to top |
|
|
Nutterpc Tux's lil' helper
Joined: 02 Feb 2004 Posts: 83
|
Posted: Wed Oct 27, 2004 7:05 am Post subject: |
|
|
all depends really, there's quite a few factors that come into it
a) how much memory do u need
b) how much do u want to spend on memory
c) is the $$ needed to get the extra ram going to make it worthwhile for what *you* do? _________________ If it isn't broke, you ain't tweaked it right
Registered Linux User 353232 |
|
Back to top |
|
|
minaguib n00b
Joined: 03 Nov 2003 Posts: 35 Location: Montréal
|
Posted: Wed Oct 27, 2004 7:55 pm Post subject: "SWAP" column of `top` misleading |
|
|
To add to the excellent post, I've noticed something peculiar about `top`s output that I thought I'd point out.
At the header near the top, `top` says that I'm using no swap:
Code: | Swap: 265064k total, 12k used, 265052k free, 112472k cached |
(well, almost no swap - 12k is negligible)
However, the "SWAP" column in the process listing lists several processes with huge chunks of "swap":
Code: | PID USER PR VIRT RES SHR %CPU %MEM TIME+ SWAP CODE DATA COMMAND
25274 mina 15 132m 55m 32m 0.0 22.3 1:52.33 76m 68 99m thunderbird-bin
1960 mina 15 95628 32m 31m 3.4 12.9 0:32.40 61m 68 61m firefox-bin
6076 root 15 92496 24m 69m 2.1 9.6 4:38.54 66m 1680 18m X
1277 mina 15 46084 7360 10m 0.2 2.9 0:03.57 37m 984 33m xmms
25060 mina 16 24216 8572 13m 0.6 3.3 0:47.93 15m 796 9320 gkrellm2
6819 mina 15 9508 6480 5840 0.0 2.5 0:32.25 3028 808 2860 irssi |
This, of course, is contradictory. If there's no swap usage, no process could possibly have swapped data.
My personal conclusion (corrections welcome) is that `top` uses a fairly primitive way to calculate swap per process:
Code: | Swap = Total Usage - Resident Usage |
It does not take into account mapped memory from non-resident sources, such as mapped files on disk, or memory on a graphics card.
In my example above, it's most likely that the 66 megs of memory assigned to "X" as swap is files mapped to disk and the memory on my el-cheapo graphics card.
And so my conclusion is, the "SWAP" column in the process list is not accurate and, for the most part, should be ignored. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|