Application architecture latency

Is there a link that lists the approximate duration (in relative or absolute terms) of transferring information over the network (udp vs tcp / ip), disk, memory (sequential / random access), in-process vs inter-process, etc. ?

Eventually I'll have to measure them, but I'll be grateful for pointers to shapes with balls.

Memory and disk are not hard to find, but I would like to summarize the rest of the numbers.

+2


source to share


2 answers


I haven’t come across anything like this yet, and I think there is no other way other than testing your specific scenarios. There are too many factors to give a consistent answer: for example which NICs you are using, whether they are doing TCP checksum loading, how much your switching fabric is, what drives you are using, how much cache they have, how much data you are transferring, many small packets or several large ones. packages, etc. etc.

When you talk about RAM access times, you are talking about 10-100ns currently, and probably around 4-8ms for hard drives. Any test tool should give you good results for measuring RAM and hard drive.



UDP versus TCP, on the other hand, you really can't give any specific numbers. In theory, UDP should be 30-50% faster than TCP as it skips the extra round trip for ACK and has lower overhead at the top, however, there are actually many cases where TCP beats UDP just for congestion control. Also, TCP with Nagle included packets of packets, which again would not be a fair comparison to UDP, which does not.

In general, really do your own testing according to your needs. Even if there was a checklist somewhere near someone who has performed similar tests, they may be completely invalid and not reproducible for your application and hardware stack.

+3


source


+1 for Tom is what I was going to write (even less clear) before I see his answer.

One more thing to consider:



  • Latency Demand and Bandwidth Demands

  • scalability of this solution. For example.

    • How difficult is it to upgrade the network speed (do you need to replace the network adapters? Routing?) Compared to the scale possible (100Mb vs. 1Gb)?

    • How difficult is it to speed up the process of increasing disk speed and increasing speed?

    eg. faster disk, larger cache disk, assuming your use case is cached, RAID or other data, local storage and network storage.

In other words, your current situation may indicate that the hard metrics point to the disk as the best solution, all things considered, but you can rarely improve disk performance by 10x, whereas you can really do it with the network if it really is. necessary.

0


source







All Articles