def set_cache_size(self, size):
return self.admin_socket(['config', 'set', 'client_cache_size', str(size)])
+
+ def get_op_read_count(self):
+ return self.admin_socket(['perf', 'dump', 'objecter'])['objecter']['osdop_read']
epoch, barrier = int(first_line_tokens[1]), int(first_line_tokens[3])
return epoch, barrier
+
+ def get_op_read_count(self):
+ buf = self.read_debug_file("metrics")
+ if buf is None:
+ return 0
+ else:
+ return int(re.findall(r'read.*', buf)[0].split()[1])
def get_osd_epoch(self):
raise NotImplementedError()
+ def get_op_read_count(self):
+ raise NotImplementedError()
+
def lstat(self, fs_path, follow_symlinks=False, wait=True):
return self.stat(fs_path, follow_symlinks=False, wait=True)
import logging
-from tasks.cephfs.fuse_mount import FuseMount
from tasks.cephfs.cephfs_test_case import CephFSTestCase
log = logging.getLogger(__name__)
class TestReadahead(CephFSTestCase):
def test_flush(self):
- if not isinstance(self.mount_a, FuseMount):
- self.skipTest("FUSE needed for measuring op counts")
-
# Create 32MB file
self.mount_a.run_shell(["dd", "if=/dev/urandom", "of=foo", "bs=1M", "count=32"])
self.mount_a.umount_wait()
self.mount_a.mount_wait()
- initial_op_read = self.mount_a.admin_socket(['perf', 'dump', 'objecter'])['objecter']['osdop_read']
+ initial_op_read = self.mount_a.get_op_read_count()
self.mount_a.run_shell(["dd", "if=foo", "of=/dev/null", "bs=128k", "count=32"])
- op_read = self.mount_a.admin_socket(['perf', 'dump', 'objecter'])['objecter']['osdop_read']
+ op_read = self.mount_a.get_op_read_count()
+
assert op_read >= initial_op_read
op_read -= initial_op_read
log.info("read operations: {0}".format(op_read))