From 51e77caad3dbaeb7d2f7cb1eb6f24350572a2ee1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Genevi=C3=A8ve=20Bastien?= Date: Mon, 30 May 2016 16:10:00 -0400 Subject: [PATCH] doc: bug 495211 Add the I/O analysis documentation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I9e790c1b9bfd0e9a0c35f303d9660bb522c6cf93 Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/73985 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam Tested-by: Matthew Khouzam --- .../doc/User-Guide.mediawiki | 47 ++++++++++++++++++ .../doc/images/io/diskIoActivity.png | Bin 0 -> 36757 bytes 2 files changed, 47 insertions(+) create mode 100644 doc/org.eclipse.tracecompass.doc.user/doc/images/io/diskIoActivity.png diff --git a/doc/org.eclipse.tracecompass.doc.user/doc/User-Guide.mediawiki b/doc/org.eclipse.tracecompass.doc.user/doc/User-Guide.mediawiki index 6327582b15..fc52840f4e 100644 --- a/doc/org.eclipse.tracecompass.doc.user/doc/User-Guide.mediawiki +++ b/doc/org.eclipse.tracecompass.doc.user/doc/User-Guide.mediawiki @@ -2118,6 +2118,53 @@ To open all three traces simultaneously, we first create an experiment containin [[Image:images/waitAnalysis/KernelWaitAnalysisDjango.png]] +== Input/Output Analysis == + +TraceCompass can analyse disk input/output through the read/write system calls to get the read/write per processes, but also with the disk request events, to get the actual reads and writes to disk. + +=== Get the trace === + +The following tracepoints should be enabled to get the disk read/write data. Also, enabling syscalls will allow to match the reads and writes per processes. + + # sudo lttng list -k + Kernel events: + ------------- + ... + block_rq_complete (loglevel: TRACE_EMERG (0)) (type: tracepoint) + block_rq_insert (loglevel: TRACE_EMERG (0)) (type: tracepoint) + block_rq_issue (loglevel: TRACE_EMERG (0)) (type: tracepoint) # on the guest + block_bio_frontmerge (loglevel: TRACE_EMERG (0)) (type: tracepoint) # on the guest + ... + +For full disk request tracking, some extra tracepoints are necessary. They are not required for the I/O analysis, but make the analysis more complete. Here is the procedure to get those tracepoints that are not yet part of the mainline kernel. + + # git clone https://github.com/giraldeau/lttng-modules.git + # cd lttng-modules + +Checkout the addons branch, compile and install lttng-modules as per the lttng-modules documentation. + + # git checkout addons + # make + # sudo make modules_install + # sudo depmod -a + +The lttng addons modules must be inserted manually for the extra tracepoints to be available: + + # sudo modprobe lttng-addons + # sudo modprobe lttng-elv + +And enable the following tracepoint + + addons_elv_merge_requests + +=== Input/Output Views === + +The following views are available for input/output analyses: + +* Disk I/O Activity +A time aligned XY chart of the read and write speed for the different disks on the system. This view is useful to see where there was more activity on the disks and whether it was mostly reads or writes. + + [[Image:images/io/diskIoActivity.png| Disk I/O Activity Example]] == LTTng Kernel Events Editor == diff --git a/doc/org.eclipse.tracecompass.doc.user/doc/images/io/diskIoActivity.png b/doc/org.eclipse.tracecompass.doc.user/doc/images/io/diskIoActivity.png new file mode 100644 index 0000000000000000000000000000000000000000..08aa8ab00a74822adfabc1747d807da4b2585b92 GIT binary patch literal 36757 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%0A8NT-?SxlX~ba@2E1 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 G`TajLK&Ht6 literal 0 HcmV?d00001 -- 2.34.1