Skip to content

figure out what made startup of the connector slow #74

Description

@ensonic

Prepare:

# stop the connector
sudo systemctl stop openrobertalab
# eventually delete update to simplify measurements
rm -rf /home/robot/.local/lib/python/roberta/

Run

strace -e file -o /tmp/strace.log -ttt /usr/bin/openrobertalab

then download it and analyze:

scp robot@ev3dev.local:/tmp/strace.log ./
# remove everything after SIGINT
~/bin/plot-timeline-strace.py strace.log -o strace.png

Stats for which syscalls take how much time.

strace -e file -o /tmp/strace.log -c /usr/bin/openrobertalab
cat /tmp/strace.log 
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 59.60    0.051897         200       259         6 open
 40.40    0.035181          37       961       151 stat64
  0.00    0.000000           0         3         1 execve
  0.00    0.000000           0        36        36 access
  0.00    0.000000           0         1         1 mkdir
  0.00    0.000000           0         4         2 readlink
  0.00    0.000000           0         1         1 statfs
  0.00    0.000000           0        13         1 lstat64
  0.00    0.000000           0         2         2 statfs64
  0.00    0.000000           0        38         2 openat
------ ----------- ----------- --------- --------- ----------------
100.00    0.087078                  1318       203 total

Find the slowest calls

strace -e file -o /tmp/strace.log -r -ttt /usr/bin/openrobertalab

then download it and analyze:

scp robot@ev3dev.local:/tmp/strace.log ./strace.rel.log
# remove everything after SIGINT
sort -n strace.rel.log

To see all the files accessed sorted by path:

grep "open(" strace.rel.log | sed 's/open(/open (/' | sort -k 3

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions