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