Skip to content

Profiler

Atsushi Abe edited this page Jul 11, 2018 · 1 revision

Overview

LTFS has a functionality of performance profiling. It is disabled by default. And you can enable to set flags via virtual extended attribute (VEA) ltfs.vendor.IBM.profiler

Also LTFS has a functionality of trace which stores received requests. It is enabled by default. This information is stored into the cyclic buffer and you can dump this by writing filename to VEA ltfs.vendor.IBM.dumpTrace. You can disable this functionality to write "off" to VEA ltfs.vendor.IBM.trace.

Profiler

You can enable profiler function to write a value to VEA ltfs.vendor.IBM.profiler. The value (flag) is defined as below.

#define PROF_REQ       (0x0000000000000001)
#define PROF_IOSCHED   (0x0000000000000002)
#define PROF_DRIVER    (0x0000000000000004)

If you issue the command attr -s ltfs.vendor.IBM.profiler -V 0x7 /ltfs, request from FUSE, IO-scheduler activity and tape backend activity (if available) are logged into the work directory. The default work directory is /tmp/ltfs and it can be changed by the option of ltfs command.

The file name starts from prof_. The contents is stored by binary and you need to have a decoder to inspect it. (I will provide it later, but I don't have any target date at this time.)

You can stop the profiler function to rest the flag of ltfs.vendor.IBM.profiler. attr -s ltfs.vendor.IBM.profiler -V 0x7 /ltfs will stop all profiler functions.

Considerations

  • This profiler will degrades the performance of LTFS from 1% to 3%
  • The profiler dump out the profiling information to the files forever when it is running. So it is not a good idea to enable it long time (depends on the capacity of /tmp (or specified) file system)
  • The profiling information will be written in buffered-mode so there is no guarantee that prof_ files have all information at crash case