These patches largely depend on the acache patches from this posting:
http://www.beowulf-underground.org/pipermail/pvfs2-developers/2005-November/001606.html

perf-counter-api.patch:
-------------------------------------
This patch overhauls the performance counter api to add quite a bit of functionality: - ability to make multiple performance counter instances, rather than having one global data structure that all counters go to - ability to define new keys and key mappings for instrumenting different code paths without changing the perf counter API
- ability to dynamically change the history size that is buffered
- ability to define whether individual counter values should be preserved or reset on rollover - function to generate a textual representation of the performance counter values (see example in next patch description) - code to convert between the format of the data from this API and what the pvfs2-server code expects, so that we don't break wire compatibility with this patch
- doxygen comments

perf-counter-client.patch:
--------------------------------------
This patch adds performance counter support to pvfs2-client:
- new state machines to periodically rollover the values
- instrumentation of the acache
- command line (to pvfs2-client) as well as /proc/sys/pvfs2 hooks to modify performance counter parameters (history size, time interval, etc)
- ability to display performance counter contents in proc

Example (/proc/sys/pvfs2/perf-counters/acache) with the interval time set to 5 seconds, after untarring some files and running find through it a few times is shown below. The patch sets the default interval to 5 minutes but setting it lower makes it easier for me to generate some quick output to show :)

Start times (hr:min:sec):  21:05:17.684  21:05:12.670  21:05:07.647
Intervals (hr:min:sec)  :  00:00:02.486  00:00:05.014  00:00:05.023
-------------------------------------------------------------------
ACACHE_NUM_ENTRIES      :           112           112            89
ACACHE_SOFT_LIMIT       :          5120          5120          5120
ACACHE_HARD_LIMIT       :         10240         10240         10240
ACACHE_HITS             :             0          1339           195
ACACHE_MISSES           :             0           757          1361
ACACHE_UPDATES          :             0           805          1421
ACACHE_PURGES           :             0             0             0
ACACHE_REPLACEMENTS     :             0             0             0
ACACHE_ENABLED          :             1             1             1


perf-counter-logging.patch:
----------------------------
This patch adds a new gossip mask, "perfcounter", that causes the type of performance counter information shown in the above example to be dumped to the gossip logs whenever a new time interval starts. This is left out of the "verbose" mask by default, because it can generate an enormous amount of output if used improperly. Its only really helpful if you either set the interval to something relatively long or else are willing to deal with very large log files. (The pvfs2-server defaults to a 1 second interval, which is really too fast to use this with).

-Phil

Attachment: perf-counter-api.patch.gz
Description: application/gzip

Attachment: perf-counter-client.patch.gz
Description: application/gzip

Attachment: perf-counter-logging.patch.gz
Description: application/gzip

_______________________________________________
PVFS2-developers mailing list
PVFS2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to