summaryrefslogtreecommitdiffstats
path: root/tests/basic/cache.t
diff options
context:
space:
mode:
authorDavid Wolinsky <davidiw@fb.com>2015-10-08 16:05:20 -0700
committerJeff Darcy <jeff@pl.atyp.us>2017-07-14 13:41:42 +0000
commitbc02e5423d097aff5280a849b7c6e6cf5d63ef96 (patch)
treec4901be6b501a5df5588ee46949b4bc5626c9063 /tests/basic/cache.t
parente8029ec1fc205b5dace0c29ae3d1fe5b960e54fc (diff)
[io-cache] cache statfs
Summary: cache calls to statfs - io-cache must be enabled - then enable statfs caching - also can configure an independent cache time Test Plan: unit test basic/cache.t Reviewers: rwareing, sshreyas Subscribers: rappleye Differential Revision: https://phabricator.fb.com/D2524471 Change-Id: I55e0a773f9e24c2358d6fbbabbaf58bd5bd89ffc Tasks: 8618383 Reviewed-on: https://review.gluster.org/17771 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us> Tested-by: Jeff Darcy <jeff@pl.atyp.us> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'tests/basic/cache.t')
-rw-r--r--tests/basic/cache.t69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/basic/cache.t b/tests/basic/cache.t
new file mode 100644
index 00000000000..92251732f4a
--- /dev/null
+++ b/tests/basic/cache.t
@@ -0,0 +1,69 @@
+#!/bin/bash
+#
+
+FILE=/var/log/glusterfs/samples/glusterfs_patchy.samp
+rm $FILE
+
+. $(dirname $0)/../include.rc
+. $(dirname $0)/../volume.rc
+
+function print_cnt() {
+ local FOP_TYPE=$1
+ local FOP_CNT=$(grep ,${FOP_TYPE} $FILE | wc -l)
+ echo $FOP_CNT
+}
+
+function print_avg() {
+ local FOP_TYPE=$1
+ local FILE=/var/log/glusterfs/samples/glusterfs_patchy.samp
+ local FOP_AVG=$(grep -oE "${FOP_TYPE},[0-9]+\." ${FILE} | grep -oE '[0-9]+' | awk 'NR == 1 { sum = 0 } { sum += $1; } END {printf "%d", sum/NR}')
+ echo $FOP_AVG
+}
+
+cleanup;
+TEST glusterd
+TEST pidof glusterd
+TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2}
+TEST $CLI volume set $V0 nfs.disable off
+TEST $CLI volume set $V0 diagnostics.latency-measurement on
+TEST $CLI volume set $V0 diagnostics.count-fop-hits on
+TEST $CLI volume set $V0 diagnostics.fop-sample-buf-size 65535
+TEST $CLI volume set $V0 diagnostics.fop-sample-interval 1
+TEST $CLI volume set $V0 diagnostics.stats-dump-interval 1
+TEST $CLI volume start $V0
+TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 --attribute-timeout=0 --entry-timeout=0
+
+for i in {1..100}
+do
+ df $M0 &> /dev/null
+done
+
+sleep 6
+
+# Get average
+STATFS_CNT0=$(print_cnt STATFS)
+TEST [ "$STATFS_CNT0" -gt "0" ]
+STATFS_AVG0=$(print_avg STATFS)
+# Make it easier to compute averages
+rm $FILE
+
+TEST $CLI volume set $V0 performance.nfs.io-cache on
+TEST $CLI volume set $V0 performance.statfs-cache on
+TEST $CLI volume set $V0 performance.statfs-cache-timeout 10
+
+for i in {1..100}
+do
+ df $M0 &> /dev/null
+done
+
+sleep 6
+
+# Get average
+STATFS_CNT1=$(print_cnt STATFS)
+TEST [ "$STATFS_CNT1" -eq "$STATFS_CNT0" ]
+STATFS_AVG1=$(print_avg STATFS)
+
+# Verify that cached average * 10 is still faster than uncached
+STATFS_AVG1x10=$(($STATFS_AVG1 * 10))
+TEST [ "$STATFS_AVG0" -gt "$STATFS_AVG1x10" ]
+#cleanup