numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
---|
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
---|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
---|
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
---|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|
numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
| numastat -m ).
. tmpfs ( ), 1 .
numastat? , : Per-node process memory usage (in MBs) for PID 7781 (java) Node 0 Node 1 Total Huge 0 0 0 Heap 0.20 0.14 0.34 Stack 118.82 137.87 256.70 Private 80200.73 123323.81 203524.55 Total 80319.76 123461.82 203781.58 Per-node system memory usage (in MBs): Node 0 Node 1 Total MemTotal 131032.75 131072.00 262104.75 MemFree 1228.93 639.84 1868.78 MemUsed 129803.82 130432.16 260235.98 Active 23224.13 121073.42 144297.55 Inactive 101138.88 3753.98 104892.85 Active(anon) 1690.50 120997.86 122688.36 Inactive(anon) 79528.66 3560.95 83089.61 Active(file) 21533.63 75.57 21609.20 Inactive(file) 21610.21 193.03 21803.24 Unevictable 0 0 0 Mlocked 0 0 0 Dirty 0.11 0.02 0.13 Writeback 0 0 0 FilePages 122397.46 124295.47 246692.93 Mapped 78436.03 122947.26 201383.29 AnonPages 1966.62 532.02 2498.64 Shmem 79251.21 123964.70 203215.90 KernelStack 2.44 2.57 5.01 PageTables 158.62 252.29 410.91 NFS_Unstable 0 0 0 Bounce 0 0 0 WritebackTmp 0 0 0 Slab 1801.95 1932.29 3734.23 SReclaimable 1653.13 1818.79 3471.92 SUnreclaim 148.82 113.49 262.31 AnonHugePages 1856.00 498.00 2354.00 HugePages_Total 0 0 0 HugePages_Free 0 0 0 HugePages_Surp 0 0 0 NUMA, 1 tmpfs . interleave (numactl —interleave=all, ) .
3 — , , , . ( , , ):
CPU0 ( softirq). , , , . ( , ethtool -l/-L ). , 1 Intel 8, 10 — 128. . , , CPU0. irq_balancer. . , , . set_irq_affinity ( ) — RSS (receive side scaling) — https://www.kernel.org/doc/Documentation/networking/scaling.txt. 8 , 8 , 16 , . ?.. . 16 , Intel ( 10 ), , , 16.
16 — , RSS. RSS- , 4 , , — 16. .
Intel, . -, ( , ). , .. , , .
-, Flow director.
, , , , . , .
Flow director Flow director, Intel, 2 — Signature Filter ( ATR — Application Targeted Receive) Perfect filter. Flow director -IP , . / flow director: ethtool -S ethN|grep fdir
Perfect filter (ntuple) 8 000 . Perfect filter / ethtool -u/U flow-type .
Signature Filter 32 000 . , ATR , ( ) __ SYN .
During transmission of a packet (every 20 packets by default), a hash is calculated based on the 5-tuple. The (up to) 15-bit hash result is used as an index in a hash lookup table to store the TX queue. When a packet is received, a similar hash is calculated and used to look up an associated Receive Queue. For uni-directional incoming flows, the hash lookup tables will not be initialized and Flow Director will not work. For bidirectional flows, the core handling the interrupt will be the same as the core running the process handling the network flow. [1]
.., , SYN, 20 ( , AtrSampleRate). ATR, RSS (.. 16 ). . flow director ethtool -S ethN | grep fdir , fdir_miss. .. ATR, RSS. 16 . ( https://sourceforge.net/p/e1000/bugs/464/ ), , — RPS.
, — ethtool -k ethN ntuple on . ATR, Perfect filter, , , , .
RPS (receive packet steering) . 2 ( RSS) — scaling.txt.
( irq_balancer).
. , , , 16. , , , , . RPS, RSS, 16 (.. ), ( , rps_cpus , ).
.. , , , , , .. — — . , scaling.txt RFS.
RFS (receive flow steering) ? , , , . .. , , , .
[2]: RPS RFS
Accelerated RFS scaling.txt, Accelerated RFS. ? RFS . Accelerated RFS , . Mellanox.
, . , kernel panic.
, . , firmware .
4 — broken pipe broken pipe OpenSuSE, CentOS . , , “” .
Broken pipe — , , pipe. pipe , — . , , , , pipe broken pipe. , , ( half-duplex tcp close sequence ), - . ? ? , .. , , . .
— "packet reordering" ( http://en.wikipedia.org/wiki/Out-of-order_delivery ), . .. , , , , RFS broken pipe .
, — interrupt coalescing. , .
5 — , Counter Strike latency, ( , ) . , ( ) (), softirq . softirq 50% .
, CPU, — . interrupt coalescing, ethtool -c/-C . interrupt coalescing — , .
, softirq , , . : [rx|tx]-usecs — [rx|tx]-frames — , *-irq — *-[low|high] —
: , 2024 [3] broken pipe 40 ( 50 ) ( CFEngine ) .
, , -, . , . .
https://networkbuilders.intel.com/docs/network_builders_RA_packet_processing.pdf https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerformance/ComparingMutiqueueSupportLinuxvsFreeBSD https://wiki.centos.org/About/Product
|