glusterfs/extras
Richard Wareing d3e496cbcd debug/io-stats: Add FOP sampling feature
Summary:
- Using sampling feature you can record details about every Nth FOP.
  The fields in each sample are: FOP type, hostname, uid, gid, FOP priority,
  port and time taken (latency) to fufill the request.
- Implemented using a ring buffer which is not (m/c) allocated in the IO path,
  this should make the sampling process pretty cheap.
- DNS resolution done @ dump time not @ sample time for performance w/
  cache
- Metrics can be used for both diagnostics, traffic/IO profiling as well
  as P95/P99 calculations
- To control this feature there are two new volume options:
  diagnostics.fop-sample-interval - The sampling interval, e.g. 1 means
  sample every FOP, 100 means sample every 100th FOP
  diagnostics.fop-sample-buf-size - The size (in bytes) of the ring
  buffer used to store the samples.  In the even more samples
  are collected in the stats dump interval than can be held in this buffer,
  the oldest samples shall be discarded.  Samples are stored in the log
  directory under /var/log/glusterfs/samples.
- Uses DNS cache written by sshreyas@fb.com (Thank-you!), the DNS cache
  TTL is controlled by the diagnostics.stats-dnscache-ttl-sec option
  and defaults to 24hrs.

Test Plan:
- Valgrind'd to ensure it's leak free
- Run prove test(s)
- Shadow testing on 100+ brick cluster

Change-Id: I9ee14c2fa18486b7efb38e59f70687249d3f96d8
BUG: 1271310
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/12210
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
2015-11-01 09:14:34 -08:00
..
benchmarking Respect autotools docdir variable 2013-02-07 16:38:06 -08:00
command-completion bash-completion: Swap order of characters in egrep bracket expression 2015-09-08 07:49:30 -07:00
firewalld firewall/spec: Create glusterfs firewall service if firewalld installed. 2015-09-10 23:44:50 -07:00
FreeBSD Man page updates 2010-09-07 07:45:58 -07:00
ganesha build: scripts are not installed with +x bit 2015-07-31 07:12:56 -07:00
geo-rep build: scripts are not installed with +x bit 2015-07-31 07:12:56 -07:00
hook-scripts extras/hookscripts : introducing additional check in S31ganesha-start.sh 2015-09-24 01:52:44 -07:00
init.d Fix case mistake for MKDIR_P in Makefiles 2015-04-20 04:29:26 -07:00
LinuxRPM extras/LinuxRPM: error in Makefile.am 2014-08-08 07:23:59 -07:00
ocf build: include OCF resource agents by default and package them 2012-12-12 10:58:45 -08:00
profiler All: License message change 2012-09-13 13:19:37 -07:00
snap_scheduler snapshot/scheduler: Check if volume exists before adding/editing schedules 2015-08-23 23:55:47 -07:00
Solaris Change Copyright current year 2011-08-10 10:57:19 -07:00
systemd systemd/spec/glusterd: Adding EnvironmentFile in glusterd systemctrl service file. 2015-09-15 06:08:38 -07:00
test all: reduce "inline" usage 2015-09-01 04:55:15 -07:00
Ubuntu Updating extras/Ubuntu with latest upstart configs (BUG: 1047007) 2013-12-29 23:03:52 -08:00
who-wrote-glusterfs who-wrote-glusterfs: use the set $GITDM_REPO variable 2014-08-19 23:34:39 -07:00
backend-cleanup.sh Copyright changes 2010-10-11 07:31:12 -07:00
backend-xattr-sanitize.sh backend-xattr-sanitize.sh: script added to extras/ 2009-05-07 15:12:09 +05:30
check_goto.pl gluster: Fix the recursive goto outs in the source code. 2014-07-21 10:26:20 -07:00
checkpatch.pl Fix incorrect rfc.sh and checkpatch.pl use of "jenkins" instead of "gerrit" 2015-04-13 11:10:07 +00:00
clear_xattrs.sh extras: add check for brick path existence 2012-01-05 09:18:11 -08:00
contri-add.sh extras: Add quota-related debugging scripts. 2011-06-19 20:41:21 -07:00
disk_usage_sync.sh extras: Add script to be used before using quota translator. 2010-03-09 00:24:57 -08:00
file_size_contri.sh extras: Add quota-related debugging scripts. 2011-06-19 20:41:21 -07:00
gluster-rsyslog-5.8.conf log: add comments to rsyslog gluster configuration file 2013-08-14 13:05:50 -07:00
gluster-rsyslog-7.2.conf log: add comments to rsyslog gluster configuration file 2013-08-14 13:05:50 -07:00
glusterd-sysconfig RHEL init script: ability to overwrite options from sysconfig 2012-12-12 07:36:26 -08:00
glusterd.vol.in build: make GLUSTERD_WORKDIR rely on localstatedir 2014-08-07 01:17:29 -07:00
glusterfs-georep-logrotate Stop logrotate from complaining about missing files. 2014-12-11 00:04:36 -08:00
glusterfs-logrotate debug/io-stats: Add FOP sampling feature 2015-11-01 09:14:34 -08:00
glusterfs-mode.el Change Copyright current year 2011-08-10 10:57:19 -07:00
glusterfs.vim All: License message change 2012-09-13 13:19:37 -07:00
gnfs-loganalyse.py All: License message change 2012-09-13 13:19:37 -07:00
group-virt.example group-virt: To minimize 'split-brain' enable quorum under virt profile 2013-11-22 22:40:28 -08:00
logger.conf.example build: disable logging framework on rhel6 2013-10-18 08:30:08 -07:00
Makefile.am firewall/spec: Create glusterfs firewall service if firewalld installed. 2015-09-10 23:44:50 -07:00
migrate-unify-to-distribute.sh enhancement to migrate-unify-to-distribute.sh 2009-04-18 11:42:52 +05:30
peer_add_secret_pub.in geo-rep: Fix ssh issue in geo-rep 2015-06-25 04:48:31 -07:00
post-upgrade-script-for-quota.sh NetBSD build fixes 2014-05-17 11:53:34 -07:00
pre-upgrade-script-for-quota.sh NetBSD build fixes 2014-05-17 11:53:34 -07:00
prot_filter.py features: add a directory-protection translator 2013-02-17 12:04:48 -08:00
rebalance.py Add scripts for size-weighted rebalance. 2013-02-07 14:27:47 -08:00
run-gluster.tmpfiles.in build: add a tmpfiles.d config file for /run/gluster 2015-01-19 00:55:31 -08:00
specgen.scm Change Copyright current year 2011-08-10 10:57:19 -07:00
stop-all-gluster-processes.sh extras: Fix stop-all-gluster-processes.sh script 2015-04-06 10:44:35 -07:00
stripe-merge.c remove useless if-before-free (and free-like) functions 2012-07-13 14:03:42 -07:00
volfilter.py Add scripts for size-weighted rebalance. 2013-02-07 14:27:47 -08:00