Link to home
Start Free TrialLog in
Avatar of Vontech615
Vontech615Flag for United States of America

asked on

Strange SQL traffic over WAN (csv file attached)

I'd like some opinions on a  wireshark capture between a web server and SQL database server that takes place over our WAN.  This is east coast to west coast.  We are trying to troubleshoot issues with slow performance on this web application.  It was developed in house.   We already know we have some issues with our WAN connection to this location from time to time and also looking into that.   I haven't found in issues on the LAN yet.  Also, there are other dependencies but this seems to be the main bottleneck since it's the only one cross-country.

I'm not a packet guru, I do know the fundamentals of TCP.  I'm seeing a lot of ACK's with no SYN's and multiple ACK's in a row. Is this a bad capture?  Also, it's saturated with reassembled PDUs.   The average MS for this connection is 90-100, which I know might be out of the range of tolerance for SQL and could be causing the problem.  Can anyone take look at this capture and shed some light on what they're seeing?
websrv-dbsrv-cap.csv
ASKER CERTIFIED SOLUTION
Avatar of robocat
robocat

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of robocat
robocat

@BillBach: the OP indicates this is a web application. Makes more sense to move the web server next to the SQL server and let HTTP requests go over the WAN (or to the internet?).

HTTP is designed for high latency and will tolerate the latency much better.
Yeah, by the end of my tome, I had somehow dropped that fact, as I was instead looking at the CSV data only.  In this case, the "client" is the web server.  This nullifies the suggestion about a Term server as a solution, but the rest of the analysis is still accurate -- and moving the client (in this case the web server) closer to the database will help.
Avatar of Vontech615

ASKER

Thanks BillBach and robocat, this is very helpful information!  The client begins with end users and their web browser of choice (HTTP), the Webserver is next in line requesting data from the DB server cross country (SQL).  I met with the developers, and PM's this morning and presented some evidence of the 100-120 ms round trips that appear to be killing the response time of the web application.  

As BillBach stated...
Remember that each one will take 100ms to complete, or only 10 requests per second

There are actually 2 servers on the east coast requesting data from the 1 on the west coast. Fore the most part everyone agrees that moving these boxes to the same LAN will at least eliminate the delay.

Does anyone know of a best practice guide to SQL client\server design in regards to network considerations (location,delay, etc) ?  I can find a lot of forum posts supporting what we're discussing here but nothing official I could actually use in my meetings with these people.
I don't have any "formal" papers, but I suppose we could write one.

As a child, did you ever do one of those races where you need to fill a glass with water from across the room, one spoonful at a time?  This is a great analogy to explain this concept to people, since most people have at least seen one of these, if not actually participated.

The network latency is the time it takes you to cross the room.  Each spoonful of water is one packet.  Spoonfuls are pretty small, so you have to go back & forth many times to get the job done.  Imagine if you could instead carry a 1/2-cup scoop every time?  It might take more time to fill the 1/2-cup scoop, and the latency is no different, but it requires far fewer trips in total, and you'll be done many times faster.  Now, imagine a 1-quart container doing the same!

In short, it's not the volume of data, but the number of times you have to go back & forth that makes the difference here.  Designing an application which reduces the number of actual database calls to the bare minimum will reduce this round trip time delay, and thus run faster.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial