I have moved my old page, which consisted mostly of raw benchmark results.
The old page is here.
My area of interest is the RPC layer. I am working to analyze
how the RPC currently functions, and to find ways to improve
its performance. My individual test results are below.
Here is a walkthrough of the implementation
of the RPC layer in the Linux 2.4.4 kernel. I will be referring
to some of the key ideas presented here in the rest of my results.
Custom Tools
I have developed some tools to help analyze the performance and behavior
of the RPC layer. Below are short descriptions of these tools, as well
as links to their source code.
kprofile |
Patch to the linux kernel that provides a profiling tool.
Measurements are taken via rdtsc. Updated 1/25/2002 |
rpcstat |
Patch to the linux kernel that provides information on current
RPC activity via a proc interface. Also included is a program that
reads the proc files at a given interval in order to monitor how the
RPC behaves over time. |
Test Results
Below are results from some of the tests I've taken.
Baseline Read/Write Tests |
Simple measurement of read and write performance on files from
20 MB to 2000 MB, using the Sun Connectathon basic5 test.
UPDATED 7/30/01 |
Network Latency Measurements |
Measurement of network latency during a write test. Network activity
was captured with tcpdump and parsed by ethereal. |
RPC Analysis with rpcstat |
Analysis of a 2000 MB write to our Network Appliance F85 file server. |
Follow-up Analysis with rpcstat |
Analysis of a 2000 MB write to a Linux NFS server, and a comparison
to the rpcstat results from the F85. |
Follow-up Analysis with rpcstat |
Another analysis of a 2000 MB write to our F85 server. This time
a larger RAID array was used, which fixed the problems I was seeing before. |
Analysis with kprofile |
Analysis of results taken with kprofile, a kernel profiling
tool which is available on our tools page. The purpose is to show
where the RPC layer is spending its time. |