Date: Tue, 26 Feb 2002 18:23:45 +0900 From: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> To: Matthew Dillon <dillon@apollo.backplane.com> Cc: Terry Lambert <tlambert2@mindspring.com>, Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>, arch@FreeBSD.ORG Subject: Re: reclaiming v_data of free vnodes Message-ID: <200202260923.g1Q9NkVh093544@rina.r.dl.itc.u-tokyo.ac.jp> In-Reply-To: <200202251754.g1PHsTs50126@apollo.backplane.com> References: <200202231556.g1NFu9N9040749@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <200202242041.g1OKfXt95731@apollo.backplane.com> <200202250325.g1P3PVN9092431@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <200202250444.g1P4i8X29005@apollo.backplane.com> <200202251437.g1PEb12R001419@bunko> <3C7A5D24.E11A6693@mindspring.com> <200202251754.g1PHsTs50126@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Mon, 25 Feb 2002 09:54:29 -0800 (PST),
Matthew Dillon <dillon@apollo.backplane.com> said:
dillon> :Seigo Tanimura wrote:
dillon> :> One question before increasing kern.vm.kmem.size: why does ffs not use
dillon> :> the zone allocator for inodes?
dillon> :
dillon> :It doesn't need to, so it doesn't.
dillon> :
dillon> :-- Terry
dillon> I supose it could. It doesn't for historical reasons and also probably
dillon> because the size of an 'inode' depends on the filesystem. How many new
dillon> zones do you want to wind up with?
AFAIK, all of ffs, ifs and ext2fs utilize struct inode and
dinode. They deal with the filesystem-specific data by a union. All of
the filesystems should thus be able to share a single zone.
Also, since an in-code inode is never allocated during interrupt, we
can allocate an inode in an on-demand manner. (ie ZONE_INTERRUPT is
not required)
For the better observation of KVM usage, I attach the results of
vmstat -mz on cvsup.jp.FreeBSD.org.
[-- Attachment #2 --]
Memory statistics by bucket size
Size In Use Free Requests HighWater Couldfree
16 1733 1083 254474736 1280 0
32 2225 1999 21695880 640 2542
64 279661 74835 170616113 320 1609
128 67759 133873 5176585 160 304258
256 326620 34180 79722025 80 23083
512 1367 110145 1629327 40 264777
1K 185 2979 5146563 20 2592719
2K 21 293 150659 10 123120
4K 159 1 12619 5 0
8K 4 22 44191 5 43889
16K 15 0 15 5 0
32K 3 0 9 5 0
64K 1 0 1 5 0
128K 2 0 2 5 0
256K 2 0 2 5 0
512K 6 0 6 5 0
Memory usage type by bucket size
Size Type(s)
16 nexusdev, UFS dirhash, newdirblk, p1003.1b, NFSV3 srvdesc,
ip6_moptions, in6_multi, igmp, routetbl, ether_multi, vnodes, mount,
pcb, soname, rman, mbufmgr, bus, sysctloid, sysctl, ip6ndp, temp,
devbuf, linker, atexit, proc-args, acpica, acpidev, DEVFS
32 atkbddev, UFS dirhash, dirrem, mkdir, diradd, freefile, freefrag,
indirdep, bmsafemap, newblk, tseg_qent, in_multi, routetbl,
ether_multi, ifaddr, vnodes, cluster_save buffer, pcb, soname, sbuf,
mbufmgr, eventhandler, bus, SWAP, sysctloid, sysctl, uidinfo, temp,
devbuf, lockf, linker, proc-args, sigio, acpica, pfs_vncache
64 UFS dirhash, allocindir, allocdirect, pagedep, NFS daemon, NFS req,
in6_multi, routetbl, ether_multi, BPF, vnodes, cluster_save buffer,
vfscache, pcb, iov, rman, mbufmgr, bus, sysctloid, sysctl, subproc,
module, acpisem, ip6ndp, temp, devbuf, lockf, ithread, proc-args,
file, acpica, isadev
128 ZONE, ppbusdev, UFS dirhash, freeblks, inodedep, NFS srvsock,
ip_moptions, routetbl, vnodes, mount, vfscache, soname, ttys,
taskqueue, mbufmgr, eventhandler, bus, timecounter, cred, session,
pgrp, module, ip6ndp, temp, devbuf, ithread, zombie, proc-args,
acpica, pfs_nodes, DEVFS
256 UFS mount, UFS dirhash, FFS node, newblk, NFS daemon, NFSV3 srvdesc,
routetbl, ifaddr, vnodes, Export Host, vfscache, iov, bus, subproc,
temp, devbuf, linker, proc-args, kqueue, file desc, dev_t, acpica
512 UFS dirhash, NFS daemon, NFSV3 diroff, routetbl, lo, ifaddr, mount,
vfscache, BIO buffer, ptys, ttys, msg, ioctlops, bus, ip6ndp, temp,
devbuf, file desc, acpica
1K UFS dirhash, BIO buffer, sem, ioctlops, MD disk, bus, uidinfo, temp,
devbuf, kqueue, file desc, acpica
2K UFS mount, UFS dirhash, ifaddr, BIO buffer, pcb, bus, temp, devbuf,
file desc
4K memdesc, UFS mount, UFS dirhash, sem, msg, sbuf, kobj, bus, proc,
temp, devbuf
8K UFS mount, UFS dirhash, indirdep, syncache, temp, DEVFS
16K shm, msg, devbuf
32K mbufmgr, temp, devbuf, pfs_fileno
64K temp
128K pagedep, mbufmgr
256K VM pgdata, UFS mount
512K UFS ihash, inodedep, NFS hash, vfscache, SWAP, ISOFS mount
Memory statistics by type Type Kern
Type InUse MemUse HighUse Limit Requests Limit Limit Size(s)
atkbddev 2 1K 1K102400K 2 0 0 32
nexusdev 7 1K 1K102400K 7 0 0 16
memdesc 1 4K 4K102400K 1 0 0 4K
ZONE 17 3K 3K102400K 17 0 0 128
VM pgdata 1 256K 256K102400K 1 0 0 256K
ppbusdev 3 1K 1K102400K 3 0 0 128
UFS mount 18 176K 176K102400K 18 0 0 256,2K,4K,8K,256K
UFS ihash 1 512K 512K102400K 1 0 0 512K
UFS dirhash 1752 592K 2157K102400K 198303 0 0 16,32,64,128,256,512,1K,2K,4K,8K
FFS node324574 81144K 81159K102400K 53680385 0 0 256
newdirblk 0 0K 1K102400K 1050 0 0 16
dirrem 8 1K 34K102400K 166236 0 0 32
mkdir 0 0K 31K102400K 14476 0 0 32
diradd 77 3K 34K102400K 225095 0 0 32
freefile 0 0K 22K102400K 108569 0 0 32
freeblks 85 11K 163K102400K 1258992 0 0 128
freefrag 10 1K 14K102400K 4297510 0 0 32
allocindir 22 2K 455K102400K 2239498 0 0 64
indirdep 8 1K 177K102400K 73726 0 0 32,8K
allocdirect 307 20K 163K102400K 8372769 0 0 64
bmsafemap 81 3K 12K102400K 912675 0 0 32
newblk 1 1K 1K102400K 10612268 0 0 32,256
inodedep 222 540K 827K102400K 1519232 0 0 128,512K
pagedep 21 130K 168K102400K 59610 0 0 64,128K
p1003.1b 1 1K 1K102400K 1 0 0 16
NFS daemon 69 7K 7K102400K 69 0 0 64,256,512
NFSV3 srvdesc 18 2K 2K102400K 51449952 0 0 16,256
NFS srvsock 2 1K 1K102400K 3 0 0 128
NFS hash 1 512K 512K102400K 1 0 0 512K
NFSV3 diroff 3 2K 3K102400K 28 0 0 512
NFS req 0 0K 3K102400K 443556 0 0 64
ip6_moptions 2 1K 1K102400K 2 0 0 16
in6_multi 8 1K 1K102400K 8 0 0 16,64
syncache 1 8K 8K102400K 1 0 0 8K
tseg_qent 0 0K 5K102400K 1440028 0 0 32
ip_moptions 1 1K 1K102400K 1 0 0 128
in_multi 3 1K 1K102400K 3 0 0 32
igmp 1 1K 1K102400K 1 0 0 16
routetbl 411 58K 91K102400K 54930 0 0 16,32,64,128,256,512
lo 1 1K 1K102400K 1 0 0 512
ether_multi 38 2K 2K102400K 38 0 0 16,32,64
ifaddr 25 8K 8K102400K 25 0 0 32,256,512,2K
BPF 4 1K 1K102400K 4 0 0 64
vnodes 27 7K 7K102400K 347 0 0 16,32,64,128,256
Export Host 42 11K 11K102400K 42 0 0 256
mount 17 9K 9K102400K 107 0 0 16,128,512
cluster_save buffer 0 0K 1K102400K 1430745 0 0 32,64
vfscache341747 26533K 71233K102400K 68580240 0 0 64,128,256,512,512K
BIO buffer 22 23K 3126K102400K 5081117 0 0 512,1K,2K
pcb 161 7K 10K102400K 1045393 0 0 16,32,64,2K
soname 39 2K 2K102400K 35188222 0 0 16,32,128
ptys 4 2K 2K102400K 4 0 0 512
ttys 566 75K 75K102400K 4739 0 0 128,512
shm 1 12K 12K102400K 1 0 0 16K
sem 3 6K 6K102400K 3 0 0 1K,4K
msg 4 25K 25K102400K 4 0 0 512,4K,16K
iov 0 0K 1K102400K 6 0 0 64,256
ioctlops 0 0K 1K102400K 23 0 0 512,1K
taskqueue 2 1K 1K102400K 2 0 0 128
sbuf 0 0K 5K102400K 2 0 0 32,4K
rman 63 4K 4K102400K 410 0 0 16,64
mbufmgr 648 115K 122K102400K190799574 0 0 16,32,64,128,32K,128K
MD disk 1 1K 1K102400K 1 0 0 1K
kobj 124 496K 496K102400K 124 0 0 4K
eventhandler 29 2K 2K102400K 29 0 0 32,128
bus 700 50K 50K102400K 3697 0 0 16,32,64,128,256,512,1K,2K,4K
SWAP 2 1097K 1097K102400K 2 0 0 32,512K
timecounter 100 13K 13K102400K 100 0 0 128
sysctloid 46 2K 2K102400K 46 0 0 16,32,64
sysctl 0 0K 1K102400K 2841328 0 0 16,32,64
uidinfo 9 2K 2K102400K 635 0 0 32,1K
cred 612 77K 77K102400K 313395 0 0 128
subproc 262 21K 22K102400K 95303 0 0 64,256
proc 2 8K 8K102400K 2 0 0 4K
session 46 6K 7K102400K 3081 0 0 128
pgrp 52 7K 8K102400K 3378 0 0 128
module 170 11K 11K102400K 170 0 0 64,128
acpisem 16 1K 1K102400K 16 0 0 64
ip6ndp 8 2K 2K102400K 10 0 0 16,64,128,512
temp 4 61K 98K102400K 5892122 0 0 16,32,64,128,256,512,1K,2K,4K,8K,32K,64K
devbuf 680 520K 521K102400K 1564 0 0 16,32,64,128,256,512,1K,2K,4K,16K,32K
lockf 204 7K 8K102400K 403580 0 0 32,64
linker 34 2K 2K102400K 48 0 0 16,32,256
ithread 45 5K 5K102400K 45 0 0 64,128
atexit 2 1K 1K102400K 2 0 0 16
zombie 0 0K 2K102400K 91985 0 0 128
proc-args 146 8K 12K102400K 153864 0 0 16,32,64,128,256
kqueue 10 10K 16K102400K 1942 0 0 256,1K
sigio 1 1K 1K102400K 58 0 0 32
file 1084 68K 73K102400K 89495821 0 0 64
file desc 274 75K 77K102400K 93042 0 0 256,512,1K,2K
dev_t 1477 370K 370K102400K 1477 0 0 256
acpica 2170 112K 112K102400K 10915 0 0 16,32,64,128,256,512,1K
acpidev 100 2K 2K102400K 100 0 0 16
ISOFS mount 1 512K 512K102400K 1 0 0 512K
isadev 28 2K 2K102400K 28 0 0 64
pfs_vncache 1 1K 3K102400K 575 0 0 32
pfs_fileno 1 20K 20K102400K 1 0 0 32K
pfs_nodes 20 3K 3K102400K 20 0 0 128
DEVFS 149 25K 25K102400K 149 0 0 16,128,8K
Memory Totals: In Use Free Requests
114399K 88854K 538668733
ITEM SIZE LIMIT USED FREE REQUESTS
PIPE: 192, 0, 128, 42, 48084
SWAPMETA: 160, 509724, 102, 1178, 1641
unpcb: 160, 0, 54, 71, 10441
ripcb: 192, 8232, 3, 39, 7
syncache: 160, 15359, 0, 51, 1607721
tcpcb: 544, 8232, 375, 2441, 2614084
udpcb: 192, 8232, 103, 67, 39930
socket: 224, 8232, 536, 2408, 2664468
DIRHASH: 1024, 0, 1621, 363, 238470
KNOTE: 64, 0, 0, 128, 1349
NFSNODE: 320, 0, 207, 897, 17215
NFSMOUNT: 256, 0, 7, 25, 95
NAMEI: 1024, 0, 1, 79, 641224701
VNODEPOLL: 64, 0, 0, 320, 5
VNODE: 224, 0, 324849, 21, 324849
VMSPACE: 224, 0, 202, 68, 92101
PROC: 768, 0, 239, 21, 92224
DP fakepg: 64, 0, 0, 0, 0
PV ENTRY: 28, 2396042, 277407, 509014, 305744319
MAP ENTRY: 48, 0, 7139, 1234, 450455008
KMAP ENTRY: 48, 193110, 774, 122, 117340
MAP: 108, 0, 8, 39, 8
VM OBJECT: 96, 0, 196349, 124241, 8967708
[-- Attachment #3 --]
--
Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> <tanimura@FreeBSD.org>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202260923.g1Q9NkVh093544>
