Invalid memory stats from vmstat and sysctl vm.vmtotal?

Jason Hellenthal jhell at DataIX.net
Fri Dec 2 07:01:16 UTC 2011



On Thu, Dec 01, 2011 at 01:23:35PM -0000, Steven Hartland wrote:
> ----- Original Message ----- 
> From: "Damien Fleuriot" <ml at my.gd>
> 
> >> I could understand a bit of overflow as stats are snapshots which may not
> >> be instuntanious, but 31GB instead of under 8GB is hardly a rounding
> >> issue /
> >> overflow.
> >> 
> >> With respect to top showing greater than 100% by how much are you talking?
> >> Do your realise that each core = 100%? So if you have a quad core your
> >> system
> >> total will be 400% not 100%?
> >> 
> > 
> > That's his point, you cannot use 400% of a system as a whole, his point
> > is that top should report 100% where each core accounts for 25%
> 
> Then I would have to disagree, keeping 100% to mean 100% of a single core
> is much easier to manage than 100% of a machines total capacity.
> 
> If you went to 100% = the machine total capacity processes could be using
> a lot of cpu without even registering 1% on today's machines where 24 cores
> is common place.
> 
> It also makes detecting single process / thread bottlenecks easier as if
> your seeing 100% you know its maxing a core, instead of having to calculate
> it once you know how many cores the machine has.
> 
> If your looking for total machine usage then that's also their in the summary
> at the top of the screen e.g.
> CPU states: 13.6% user,  0.0% nice,  1.3% system,  0.0% interrupt, 85.1% idle
> 
> Anyway this is quite off topic, and I don't want to loose sight of the threads
> goal which is to determine why we can see 31GB of usage on an 8GB machine
> with very little shared memory usage an no swap usage.
> 

Just to put some visuals to this...

.
`-- DIE
    |-- Core1		[Idle]
    |-- Core2		[35% ]
    |   `-- thread127
    |-- Core3		[40% ]
    |   `-- thread127
    `-- Core4		[100%]
        `-- thread127

In this case you would say the DIE should be at a total of 175% ?

$(((25*0)+(25*0.35)+(25*0.40)+(25*1.00)))

Out of sanity and each core only being 25% of the total DIE it should be reporting. It is using all together 43.75% of the total DIE. But thats not what I see even on SP machines. 1 DIE 1 core and a report of 338% usage for 8 threads of firefox. If someone was attempting to write a scheduler to launch processes & yield back to the scheduler to launch more based on processor usage either by core or by die totals that scheduler would be ineffective at best without alot of kludges put in place to handle all the misinterpretation. Somewhere along the line our math has been distorted or the move from SP -> MP, cores, hyperthreading etc.. has just not completed yet and should not be ignored.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20111202/261da8cf/attachment.pgp


More information about the freebsd-hackers mailing list