sean finney on 21 Nov 2011 06:34:49 -0800 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] How to Find Most Used Files |
On Sun, Nov 20, 2011 at 03:20:14PM -0500, Rich Freeman wrote: > I could envision a program aggregating from lsof or something like > that, or using a file-alteration-monitor or direct accounting calls to > the kernel. That wouldn't require quite as many updates since you > could flush the log once an hour or whatever. I have no idea if such > a thing already exists though. Assuming you're on a linux system (i.e. not BSD/Slowlaris/AIX), you can use either inotify or stap for this purpose. For example, if you have systemtap fully installed (including kernel debug symbols), the following will print a line for every open syscall for the next 4 seconds, along with the process responsible and pid. #! /usr/bin/stap probe syscall.open { printf ("%s(%d) open (%s)\n", execname(), pid(), argstr) } probe timer.ms(4000) { exit () } inotify isn't too much more complicated, and there are python bindings out there. and inotify has the advantage of not requiring those debug symbols, but I didn't have an example laying around for that one :) Two important things to keep in mind though: * tracing like this has a noticable overhead on systems with lots of I/O * if you write your results somewhere, make sure it doesn't get caught by the syscall tracing, otherwise your results will be... imbalanced :) But I'm not sure what any of this will actually get you that you couldn't get from filesystem-level tools like iostat and a couple manual lsof's. sean ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug