|
|
|
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)
|
|
|