I have set-up a machine running Windows Server 2008, and GeoServer 2.1.3. PostgreSQL 9.1/PostGIS 1.5.3 are running locally on that same machine, which is hosted at a location with a 250 megabit/second internet connection.
In GeoServer, I have a single layer published from that PostGIS instance, and I'm serving it up through WFS over the internet to desktop GIS software clients.
Performance is not as I had expected, and I'm wondering if any of you could shed some light on this for me.
Downloading an EXE file from the IIS HTTP server on that machine runs at about 5 megabits/second; the uppermost limit of the connection on the client end.
Using that same 5 megabit/second client to access the WFS layer served by GeoServer however, the speed does not exceed 1 megabit/second. I watch the resource indicators on the server machine, and the processor use spikes briefly (about 30 seconds or so) to 100% when the initial request is made and the query is performed in PostgreSQL, but then there is little to no processor activity, or other resource drain while (presumably) the GML data is sent over to the client (MapInfo, in this case. Since this is a large-ish dataset, about 40mb (~320 megabits), it takes "forever" to download, according to my users.
Can anyone think of some limiting factor that might account for this discrepancy in network speed from the same server, to the same client, but over different protocols? Is this expected behaviour?