The bottleneck is most-likely the Gtk+ 2.x interface. You should try the Gtk+ 1.2 interface. It looks ugly and cannot be sorted in all places but otherwise, the features are the same.
NFS is certainly another bottleneck at least during SHA-1 calculation. There's a script - actually two a shell and a Perl version - available in SVN that you can use to generate the SHA-1 without gtk-gnutella. You could even run that on the NFS server so that it finishes as fast as possible:
http://sourceforge.net/mailarchive/f...&forum_id=5942
A problem with NFS is, that it may cause blocking which means gtk-gnutella doesn't get sufficient CPU resources for other tasks like network, GUI and SHA-1 calculation. Sharing that many files over NFS might really be a problem, at least if your files are popular because the NFS cache will be trashed due to the random access by downloaders.
Just in case, you can actually compile gtk-gnutella yourself from current SVN:
If you don't want to dump the slow Gtk+ 2.x interface, you could also compile gtk-gnutella topless. The performance difference is extreme, you better hold your jaw tight. You could run this topless node as your "personal" U.L.T.R.A.P.E.E.R.[1] and "file-server". You can't search with that though and there's no web-interface as of yet, just some minimalistic shell interface. However you can simply connect with a secondary gtk-gnutella as leaf to search for files and download them. gtk-gnutella topless actually can download files as well, the down-side is that you can initiate only with a magnet-link. Your leaf can export all results as magnet-links though which means it does work, it's just not very comfortable or user-friendly already, or in other words: work in progress.
[1] Which moron wrote the word filter here? The word ultra-peer has nothing to do with forced intercourse.