> Why would you be sending a file to a datagram socket?

To send prepacketized video to a DTV headend.

Context: most IPTV deployments deliver video as MPEG-2 Transport Streams over
UDP. Digital cable headends are also increasingly IP based. For high-density
video on demand you need to send as many streams from a node as possible; the
bottleneck is almost always I/O... unless you stream from a Thumper.

To make things more interesting, you cannot always send jumbo frames and streams
should follow the exact timestamps with a precision on the order of 20-50 msecs
or better.


The following data is from a x4500 sending about 1.2 Gbps of video streams
(about 550 streams in this particular setup) over two interfaces. All of them
from different media, and all of them 2 to 4 GB long. Sender processes
basically read(), usleep() and send() following a prebuilt index.

- That much processor use in kernel space?

$ sar -u 3
15:59:05    %usr    %sys    %wio   %idle
16:00:08       2      49       0      49
16:00:11       2      49       0      49

Yes, we are doing a huge lot of syscalls/sec here and a lot of kernel-userspace
copying (thus I'd love to try the same with sendfile, as we already do in
Linux), see below...

$ vmstat 1
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr m1 m1 m1 m2   in   sy   cs us sy id
 0 0 0 1903944 2118896 0  0  0  0  0  0  0  0  0  0  0 9577 148303 27172 2 55 43
 0 0 0 1820744 2035696 0  0  0  0  0  0  0  0  0  0  0 7518 149480 25834 2 50 48
 0 0 0 1762504 1977456 0  0  0  0  0  0  0  0  0  0  0 8547 150297 26799 2 53 45

- Is that the Fire Engine being too aggressive at interrupt affinity? (see the
number of interrupts per core)

$ mpstat 3
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0    0   0   16  1693  300 7250  429 3090 5741    0 40410    2  51   0  47
  1    0   0    0  5545 4938 7049  420 3102 5523    0 37647    2  53   0  45
  2    0   0    1   890    1 7144  441 2908 4886    0 40037    2  51   0  47
  3    0   0    0   695   12 6152  335 2958 4673    0 37630    3  52   0  44

I'd love to hear other suggestions on how to make this beast perform better.
Should I get very different results with a recent Nevada snapshot (with the
Yosemite patches)?

Kindest regards,
 
 
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to