Changing network packet size

  • Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

  • alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    Steve (aka sgmunson) 🙂 🙂 🙂
    Rent Servers for Income (picks and shovels strategy)

  • sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

  • Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Steve (aka sgmunson) 🙂 🙂 🙂
    Rent Servers for Income (picks and shovels strategy)

  • sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

  • Sue_H - Wednesday, July 11, 2018 1:53 PM

    sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

    It's the lowest common denominator.  If your router or any hardware in between two machines has a smaller frame size you will end up with fragmentation (since the packet will be chunked and will require a resubmit).  Bringing ALL hardware to use a frame that fits through the smallest "pipe" is in fact the way to speed things up.

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Matt Miller (4) - Thursday, July 12, 2018 3:14 PM

    Sue_H - Wednesday, July 11, 2018 1:53 PM

    sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

    It's the lowest common denominator.  If your router or any hardware in between two machines has a smaller frame size you will end up with fragmentation (since the packet will be chunked and will require a resubmit).  Bringing ALL hardware to use a frame that fits through the smallest "pipe" is in fact the way to speed things up.

    I know about the entire network for large frames, the lowest MTU in the chain. I'm curious though - 1500 is a standard ethernet MTU and SQL Server defaults to 4096. Was SQL Server's network packet size originally for chocken Token Ring going back to Sybase days? Pretty sure 4096 was common when I had to endure token ring years ago. Just wondering how SQL Server came up with 4096

    Sue

  • Sue_H - Thursday, July 12, 2018 3:39 PM

    Matt Miller (4) - Thursday, July 12, 2018 3:14 PM

    Sue_H - Wednesday, July 11, 2018 1:53 PM

    sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

    It's the lowest common denominator.  If your router or any hardware in between two machines has a smaller frame size you will end up with fragmentation (since the packet will be chunked and will require a resubmit).  Bringing ALL hardware to use a frame that fits through the smallest "pipe" is in fact the way to speed things up.

    I know about the entire network for large frames, the lowest MTU in the chain. I'm curious though - 1500 is a standard ethernet MTU and SQL Server defaults to 4096. Was SQL Server's network packet size originally for chocken Token Ring going back to Sybase days? Pretty sure 4096 was common when I had to endure token ring years ago. Just wondering how SQL Server came up with 4096

    Sue

    As I recall - 4096 is the network packet size, not to be confused with the MTU.  4096 is the application layer packet size (I think they call that the TDS protocol), which operates on top of TCP (the communication layer, where MTU is relevant).

    Edit:  Here's the Wikipedia lowdown on TDS.  And good guess - TDS was introduced with Sybase 😛

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Matt Miller (4) - Thursday, July 12, 2018 5:30 PM

    Sue_H - Thursday, July 12, 2018 3:39 PM

    Matt Miller (4) - Thursday, July 12, 2018 3:14 PM

    Sue_H - Wednesday, July 11, 2018 1:53 PM

    sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

    It's the lowest common denominator.  If your router or any hardware in between two machines has a smaller frame size you will end up with fragmentation (since the packet will be chunked and will require a resubmit).  Bringing ALL hardware to use a frame that fits through the smallest "pipe" is in fact the way to speed things up.

    I know about the entire network for large frames, the lowest MTU in the chain. I'm curious though - 1500 is a standard ethernet MTU and SQL Server defaults to 4096. Was SQL Server's network packet size originally for chocken Token Ring going back to Sybase days? Pretty sure 4096 was common when I had to endure token ring years ago. Just wondering how SQL Server came up with 4096

    Sue

    As I recall - 4096 is the network packet size, not to be confused with the MTU.  4096 is the application layer packet size (I think they call that the TDS protocol), which operates on top of TCP (the communication layer, where MTU is relevant).

    Edit:  Here's the Wikipedia lowdown on TDS.  And good guess - TDS was introduced with Sybase 😛

    Thanks. But wouldn't the TDS packets need to be broken up to transfer across the network when the MTU is less? Incur the overhead of fragmenting and then reassembled? Or does an increase in the number of packets have more overhead than the fragments. That's what I was wondering with the discrepancy in size.

    Sue

  • Sue_H - Thursday, July 12, 2018 6:35 PM

    Matt Miller (4) - Thursday, July 12, 2018 5:30 PM

    Sue_H - Thursday, July 12, 2018 3:39 PM

    Matt Miller (4) - Thursday, July 12, 2018 3:14 PM

    Sue_H - Wednesday, July 11, 2018 1:53 PM

    sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

    It's the lowest common denominator.  If your router or any hardware in between two machines has a smaller frame size you will end up with fragmentation (since the packet will be chunked and will require a resubmit).  Bringing ALL hardware to use a frame that fits through the smallest "pipe" is in fact the way to speed things up.

    I know about the entire network for large frames, the lowest MTU in the chain. I'm curious though - 1500 is a standard ethernet MTU and SQL Server defaults to 4096. Was SQL Server's network packet size originally for chocken Token Ring going back to Sybase days? Pretty sure 4096 was common when I had to endure token ring years ago. Just wondering how SQL Server came up with 4096

    Sue

    As I recall - 4096 is the network packet size, not to be confused with the MTU.  4096 is the application layer packet size (I think they call that the TDS protocol), which operates on top of TCP (the communication layer, where MTU is relevant).

    Edit:  Here's the Wikipedia lowdown on TDS.  And good guess - TDS was introduced with Sybase 😛

    Thanks. But wouldn't the TDS packets need to be broken up to transfer across the network when the MTU is less? Incur the overhead of fragmenting and then reassembled? Or does an increase in the number of packets have more overhead than the fragments. That's what I was wondering with the discrepancy in size.

    Sue

    There's a whole writeup @ MS about TDS.  TDS' primary focus is around streaming data between servers (and clients), so (among other many things) it coordinates the movement, sequencing and validation of the TCP packets along with passing SQL commands to/from the communicating machines. 

    You're no doubt right about the TDS stream getting chunked into smaller communication units, but I am way too rusty to explain how the 4096 size works well with the standard MTU.

    Here's a MS-specific link to TDS and how SQL Server uses it.

    https://msdn.microsoft.com/en-us/library/dd357628.aspx

    What little I do recall is that a lot of your slowness happens when you have clashes in opinions on communication packet sizes (I.e. MTU):  meaning different swizes on the SAME layer. The application layer packets are almost always bigger, so the communication layer tends to  break those up up pretty smoothly as long as everyone agrees on the communication size: when you have to keep retrying different sizes things grind to a crawl..

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Matt Miller (4) - Thursday, July 12, 2018 6:44 PM

    Sue_H - Thursday, July 12, 2018 6:35 PM

    Matt Miller (4) - Thursday, July 12, 2018 5:30 PM

    Sue_H - Thursday, July 12, 2018 3:39 PM

    Matt Miller (4) - Thursday, July 12, 2018 3:14 PM

    Sue_H - Wednesday, July 11, 2018 1:53 PM

    sgmunson - Wednesday, July 11, 2018 1:45 PM

    Sue_H - Wednesday, July 11, 2018 1:36 PM

    sgmunson - Tuesday, July 10, 2018 10:40 AM

    alex.palmer - Friday, June 29, 2018 10:44 AM

    Hi

    our network has an MTU of 1500 so I've changed the network packet size to 1472 to stop the packet fragmentation we were getting on the network.

    However packet traces are still showing packets of over 1800 coming from the database.

    The database is in an availability group.

    Is there anything else I need to change to make this work?

    Cheers
    Alex

    I guess I'm confused...  why would you make network packets smaller to avoid fragmentation?   Why wouldn't you make them capable of being larger?

    That makes two confused. I can't remember ever changing network packet size and don't know anyone who has. The documentation on it says something like don't change this unless you are certain it will improve performance. So the starting point would be knowing it will definitely improve performance. 

    Sue

    I remember someone once saying they increased their max packet size for a similar reason, but never decreasing it's max size.

    Thanks - I forgot about those who have increased due to Jumbo frames.

    It's the lowest common denominator.  If your router or any hardware in between two machines has a smaller frame size you will end up with fragmentation (since the packet will be chunked and will require a resubmit).  Bringing ALL hardware to use a frame that fits through the smallest "pipe" is in fact the way to speed things up.

    I know about the entire network for large frames, the lowest MTU in the chain. I'm curious though - 1500 is a standard ethernet MTU and SQL Server defaults to 4096. Was SQL Server's network packet size originally for chocken Token Ring going back to Sybase days? Pretty sure 4096 was common when I had to endure token ring years ago. Just wondering how SQL Server came up with 4096

    Sue

    As I recall - 4096 is the network packet size, not to be confused with the MTU.  4096 is the application layer packet size (I think they call that the TDS protocol), which operates on top of TCP (the communication layer, where MTU is relevant).

    Edit:  Here's the Wikipedia lowdown on TDS.  And good guess - TDS was introduced with Sybase 😛

    Thanks. But wouldn't the TDS packets need to be broken up to transfer across the network when the MTU is less? Incur the overhead of fragmenting and then reassembled? Or does an increase in the number of packets have more overhead than the fragments. That's what I was wondering with the discrepancy in size.

    Sue

    There's a whole writeup @ MS about TDS.  TDS' primary focus is around streaming data between servers (and clients), so (among other many things) it coordinates the movement, sequencing and validation of the TCP packets along with passing SQL commands to/from the communicating machines. 

    You're no doubt right about the TDS stream getting chunked into smaller communication units, but I am way too rusty to explain how the 4096 size works well with the standard MTU.

    Here's a MS-specific link to TDS and how SQL Server uses it.

    https://msdn.microsoft.com/en-us/library/dd357628.aspx

    Thanks for entertaining by obsession with odd things like that. I found some more on the history and it made a little more sense. TDS packets used to be 512. Microsoft change the TDS packet size with SQL Server 7.0. The size was for "performance reasons".   I got at least that far 🙂  Thanks again -

    Sue

Viewing 11 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic. Login to reply