On Sun, 6 Jan 2008, Kris Kennaway wrote: > Vadim Goncharov wrote: >> 06.01.08 _at_ 23:34 Kris Kennaway wrote: >> >>>> What is the other 512 MB of the 1 GB used for? >>> >>> Everything else that the kernel needs address space for. Buffer cache, >>> mbuf allocation, etc. >> >> Aren't they allocated from the same memory zones? I have a router with 256 >> Mb RAM, it had a panic with ng_nat once due to exhausted kmem. So, what >> these number from it's sysctl do really mean? >> >> vm.kmem_size: 83415040 >> vm.kmem_size_max: 335544320 >> vm.kmem_size_scale: 3 >> vm.kvm_size: 1073737728 >> vm.kvm_free: 704638976 > > I believe that mbufs are allocated from a separate map. In your case you > only have ~80MB available in your kmem_map, which is used for malloc() in > the kernel. It is possible that ng_nat in combination with the other kernel > malloc usage exhausted this relatively small amount of space without mbuf > use being a factor. Actually, with mbuma, this has changed -- mbufs are now allocated from the general kernel map. Pipe buffer memory and a few other things are still allocated from separate maps, however. In fact, this was one of the known issues with the introduction of large cluster sizes without resource limits: address space and memory use were potentially unbounded, so Randall recently properly implemented the resource limits on mbuf clusters of large sizes. Robert N M Watson Computer Laboratory University of CambridgeReceived on Sun Jan 06 2008 - 21:33:20 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:25 UTC