]>
git.proxmox.com Git - ceph.git/blob - ceph/qa/tasks/cephfs/test_openfiletable.py
24f84e842c1fda74ca3def07c47b54a3120746d0
3 from cephfs_test_case
import CephFSTestCase
4 from teuthology
.exceptions
import CommandFailedError
5 from tasks
.cephfs
.cephfs_test_case
import CephFSTestCase
, for_teuthology
7 log
= logging
.getLogger(__name__
)
9 class OpenFileTable(CephFSTestCase
):
13 def _check_oft_counter(self
, name
, count
):
14 perf_dump
= self
.fs
.mds_asok(['perf', 'dump'])
15 if perf_dump
['oft'][name
] == count
:
19 def test_max_items_per_obj(self
):
21 The maximum number of openfiles omap objects keys are now equal to
22 osd_deep_scrub_large_omap_object_key_threshold option.
24 self
.set_conf("mds", "osd_deep_scrub_large_omap_object_key_threshold", "5")
27 self
.fs
.wait_for_daemons()
29 # Write some bytes to a file
34 for i
in xrange(0, file_count
):
35 filename
= "open_file{}".format(i
)
36 p
= self
.mount_a
.open_background(filename
)
37 self
.mount_a
.write_n_mb(filename
, size_mb
)
42 With osd_deep_scrub_large_omap_object_key_threshold value as 5 and
43 opening 8 files we should have a new rados object with name
44 mds0_openfiles.1 to hold the extra keys.
47 stat_out
= self
.fs
.rados(["stat", "mds0_openfiles.1"])
50 self
.mount_a
.kill_background(p
)
52 def test_perf_counters(self
):
54 Opening a file should increment omap_total_updates by 1.
57 self
.set_conf("mds", "osd_deep_scrub_large_omap_object_key_threshold", "1")
59 self
.fs
.wait_for_daemons()
61 perf_dump
= self
.fs
.mds_asok(['perf', 'dump'])
62 omap_total_updates_0
= perf_dump
['oft']['omap_total_updates']
63 log
.info("omap_total_updates_0:{}".format(omap_total_updates_0
))
66 p
= self
.mount_a
.open_background("omap_counter_test_file")
67 self
.wait_until_true(lambda: self
._check
_oft
_counter
('omap_total_updates', 2), timeout
=30)
69 perf_dump
= self
.fs
.mds_asok(['perf', 'dump'])
70 omap_total_updates_1
= perf_dump
['oft']['omap_total_updates']
71 log
.info("omap_total_updates_1:{}".format(omap_total_updates_1
))
73 self
.assertTrue((omap_total_updates_1
- omap_total_updates_0
) == 2)
76 self
.mount_a
.kill_background(p
)
77 # Ensure that the file does not exist any more
78 self
.wait_until_true(lambda: self
._check
_oft
_counter
('omap_total_removes', 1), timeout
=30)
79 self
.wait_until_true(lambda: self
._check
_oft
_counter
('omap_total_kv_pairs', 1), timeout
=30)
81 perf_dump
= self
.fs
.mds_asok(['perf', 'dump'])
82 omap_total_removes
= perf_dump
['oft']['omap_total_removes']
83 omap_total_kv_pairs
= perf_dump
['oft']['omap_total_kv_pairs']
84 log
.info("omap_total_removes:{}".format(omap_total_removes
))
85 log
.info("omap_total_kv_pairs:{}".format(omap_total_kv_pairs
))
86 self
.assertTrue(omap_total_removes
== 1)
87 self
.assertTrue(omap_total_kv_pairs
== 1)