Project

General

Profile

Task #1621 » nfd-performance-profiling-on-ONL-steps.txt

steps of performance profiling on ONL - Chengyu Fan, 06/08/2014 10:03 PM

 

This report describes how to use the provided script to profile NFD performance
on ONL (https://onl.wustl.edu/) using Callgrind.
Assumptions
===========

This report assumes that users have an ONL account. If you don't have an account
yet, please refer to the ONL official website to apply.


Experiment Steps
================

1. Login on the onlusr machine:
ssh -L 7070:onlsrv:7070 <your_account>@onl.arl.wustl.edu
2. Run RLI
Open the topology file, and make reservation; if it is not successful,
change the reservation time, and try again
When your reservation is ready, commit.
3. Experiment Environment setup
ONL does not allow us to install programs, this section describes the process
to compile NFD code on your experiment nodes.

(1) git clone the latest ndn-cxx code and NFD code to your home directory.

git clone http://gerrit.named-data.net/NFD
git clone http://gerrit.named-data.net/ndn-cxx

(2) In RLI, you can see the nodes name. Just choose one, and ssh to it.
(3) Compile and install ndn-cxx in your home directory. And then the NFD code.

For NFD, you need to compile using debug mode. You may need to specify
the PKG_CONFIG_PATH of the ndn-cxx library, and CXXFLAGS to make it work.

(4) script modification

clone scripts:
git clone https://github.com/WU-ARL/NFD_Performance_Testing_on_ONL.git

Note that John's script is to do the NFD performance testing, not for
profiling. So we have to do some modifications (this is just a note, we
will provide the script latter):

(A) create a script "start_rtr_nfd.sh" to launch callgrind, and let callgrind
call nfd
ex: valgrind --tool=callgrind /path/to/your/nfd --config nfd.conf \
>& /tmp/nfd.log &

(B) modify the "start_nfd.sh", let it run the latest NFD, not the one
installed on ONL, which is v0.1.0

ex: /path/to/your/nfd --config nfd.conf >& /tmp/nfd.log &

(C) modify "server/config_server.sh", let it run the latest nfdc

(D) same reason as (C), modify "client/config_client.sh"

(E) modify "killAll.sh", switch “killall nfd” to "pkill callgrind”
in the last line.

NFD Testing
===========

Do test as the README in John's scripts describes.


Check Result
============

kcachegrind is the GUI tool for callgrind. After the test, callgrind will
generate a output file named as "callgrind.out.<pid>". You may need to use
the kcachegrind to open it.

kcachegrind:
http://kcachegrind.sourceforge.net/html/Home.html

If you use MacOS, it is easier to install qcachegrind (already contained in
kcachegrind tar file)

(1-1/3)