From owner-freebsd-current@FreeBSD.ORG Thu Oct 13 12:11:27 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF71116A41F for ; Thu, 13 Oct 2005 12:11:26 +0000 (GMT) (envelope-from max@love2party.net) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.186]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1838143D49 for ; Thu, 13 Oct 2005 12:11:25 +0000 (GMT) (envelope-from max@love2party.net) Received: from p54A3D61C.dip.t-dialin.net [84.163.214.28] (helo=donor.laier.local) by mrelayeu.kundenserver.de with ESMTP (Nemesis), id 0MKwh2-1EQ1ve1IUm-00026X; Thu, 13 Oct 2005 14:11:22 +0200 From: Max Laier To: freebsd-current@freebsd.org Date: Thu, 13 Oct 2005 14:12:11 +0200 User-Agent: KMail/1.8.2 References: <434E46C0.7060903@centtech.com> In-Reply-To: <434E46C0.7060903@centtech.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart10456337.dubLW3Ud8u"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200510131412.23525.max@love2party.net> X-Provags-ID: kundenserver.de abuse@kundenserver.de login:61c499deaeeba3ba5be80f48ecc83056 Cc: Eric Anderson Subject: Re: ufsstat - testers / feedback wanted! X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Oct 2005 12:11:27 -0000 --nextPart10456337.dubLW3Ud8u Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Thursday 13 October 2005 13:36, Eric Anderson wrote: > [resend to -current for broader test audience] > > I've just finished the first version of ufsstat, a tool to show local > filesystem statistics much like nfsstat does for NFS. The patch and > tool is against 6.0, but it will probably apply and work fine under > -CURRENT and possibly 5.x as well. > > I'm looking for bug reports, comments/suggestions on style(9), and > anything else, since this is my first C project, and of course first > real FreeBSD contribution. :) The patch contains some jitter in the first three or four files due to olde= r=20 versions in src-patched. As all the statistic gathering is #ifdef'ed it=20 should not hurt performance in the disabled case. It will look nicer if yo= u=20 define a macro to update statistics like: #ifdef UFS_STATS #define UFS_STATS_UPDATE(field) ufsstats.field++ #else #define UFS_STATS_UPDATE(field) #end This will in turn only use one line per update point and you don't have to = do=20 the ugly: #ifdef UFS_STATS ufsstats.fsync++; #endif Also, make sure to declare "extern struct ufsstats ufsstats" in ufsstats.h= =20 under _KERNEL and define it in just one place. As is, you don't record the= =20 updates from ffs_vnops.c into the right structure. Finally, you should=20 consider 64 bit counter for some, if not all, fields as they will overflow= =20 quickly. > To use it, do this: > cd /tmp > fetch http://www.googlebit.com/software/ufsstat/ufsstat-20051011.tar.gz > cd /usr > tar xvzf /tmp/ufsstat-20051011.tar.gz > patch <./ufsstats.patch > > add: > OPTIONS UFS_STAT > to your kernel. > > Rebuild and install world/kernel. > > Now, you can use ufsstat to show you statistics from your local > filesystems, like this: > > # ufsstat > Create Remove Link Symlink Mkdir Rmdir Rename > 289048 794043 4361 12558 25796 117739 0 > GetAttr SetAttr Open Close ReadDir ReadLink VInit > 64868230 759824 10701553 9891642 5042948 0 45315645 > Chmod Chown Whiteout Strategy Access Mknod NewInode > 409782 79612 0 4020035 0 3 0 > Fsync SyncVnode LockVnode RdVnode WrVNode > 0 0 0 0 0 > ExtRead Extwrite FndExtAtt RdExtAttr OpnExtAtt ClseExtAt ExtStrtgy > 0 0 0 0 0 0 0 > > or watch over time with the -w switch. > > I have not done any performance testing yet to see if it impacts > filesystem performance by any measurable amount, so if someone does do > this testing before I do, please post your results! I don't think you can measure one single interger (or 64bit) increase in fa= ce=20 of a operation that has to access backing store. Even if there is a=20 performance hit, you don't have to build your kernel with the option enable= d. It might be (more) interesting to have these stats on a per-mountpoint basi= s. =20 Not sure if you have enough state available to record all of the above, but= =20 since you asked for input - this might be worth investigating. =2D-=20 /"\ Best regards, | mlaier@freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier@EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News --nextPart10456337.dubLW3Ud8u Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQBDTk8nXyyEoT62BG0RAt82AJ4oNwBQizLFy/mjd0TRzO39b+lWYgCeJqc+ nvQ2r8DEzdGGCeALeewVY2A= =hhfi -----END PGP SIGNATURE----- --nextPart10456337.dubLW3Ud8u--