64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
|
This directory contains tools to profile the sdcard performance.
|
||
|
|
||
|
There are 2 parts to the tool:
|
||
|
* A binary that runs on the device, exercises the sdcard and send
|
||
|
measurment data back to the host (sdcard_perf_test).
|
||
|
* A host python script to plot the data.
|
||
|
|
||
|
Additionally, there is script 'profile_sdcard.sh' that allows you
|
||
|
to check how the sdcard scale with the number of processes.
|
||
|
|
||
|
INSTALLATION
|
||
|
============
|
||
|
Build, install and mount debugfs. In this directory with a properly
|
||
|
configured enviroment:
|
||
|
|
||
|
mm SDCARD_TESTS=1
|
||
|
adb remount
|
||
|
adb push $ANDROID_PRODUCT_OUT/system/bin/sdcard_perf_test /system/bin/sdcard_perf_test
|
||
|
adb shell mount -t debugfs none /sys/kernel/debug
|
||
|
|
||
|
If you want to graph the results you need gnuplot and numpy:
|
||
|
|
||
|
sudo apt-get install gnuplot python-numpy python-numeric
|
||
|
|
||
|
You need Gnuplot.py version 1.8 (not the one coming with ubuntu).
|
||
|
Download it from the Gnuplot.py web site. Extract to a temp
|
||
|
directory, chdir and run:
|
||
|
|
||
|
sudo python setup.py install
|
||
|
|
||
|
|
||
|
INVOCATION
|
||
|
==========
|
||
|
|
||
|
Run a simple test:
|
||
|
|
||
|
adb shell sdcard_perf_test --test=write --size=1000 --chunk-size=100 --procnb=1 --iterations=100
|
||
|
|
||
|
This test will write 1000kbyte (1M) files using writes of 100kbytes (so 10 writes per file) using
|
||
|
only 1 process for 100 times (100 files will be written on the sdcard).
|
||
|
The test will not call sync to flush the writes.
|
||
|
At the end of the test, some stats for the 'open' and 'write' system calls are written.
|
||
|
|
||
|
If you want to plot the data, you need to use the --dump option and provide a file:
|
||
|
|
||
|
adb shell sdcard_perf_test --test=write --size=1000 --chunk-size=100 --procnb=1 --iterations=100 --dump >/tmp/data.txt
|
||
|
|
||
|
PLOTTING
|
||
|
========
|
||
|
|
||
|
To plot the result using the iter number of the x axis:
|
||
|
|
||
|
plot_sdcard.py -i /tmp/data.txt
|
||
|
|
||
|
To plot the result using time for the x axis:
|
||
|
|
||
|
plot_sdcard.py -t /tmp/data.txt
|
||
|
|
||
|
To plot the result from the profiler:
|
||
|
|
||
|
profile_sdcard.sh
|
||
|
plot_sdcard.py -p
|
||
|
|