Интеграционные тесты - это Pytest Testsing Python 3.12. /> Тесты, саму приложение, услуги Mongo и Redis работают только локально в Docker Compose, поэтому не существует сетевой связи с другими хостами через реальную физическую сеть. />https://www.kernel.org/pub/linux/kernel ... ngelog-5.1
Код: Выделить всё
commit 4a41f453bedfd5e9cd040bad509d9da49feb3e2c
Author: Wei Wang
Date: Fri Jan 25 10:53:20 2019 -0800
tcp: change pingpong threshold to 3
https://www.kernel.org/pub/linux/kernel ... ode]commit 77ac046a9ad3b9ee94d02f999d30db3ac106c98c
Author: Wei Wang
Date: Thu Jul 21 20:44:04 2022 +0000
Revert "tcp: change pingpong threshold to 3"
commit 4d8f24eeedc58d5f87b650ddda73c16e8ba56559 upstream.
This reverts commit 4a41f453bedfd5e9cd040bad509d9da49feb3e2c.
[/code]
и в 2023 году введен net.ipv4.tcp_pingpong_thresh, какая по умолчанию составляет 1:
https://www.kernel.org/pub/linux/kernel ... ngelog-6.7
Код: Выделить всё
commit 562b1fdf061bff9394ccd884456ed1173c224fdc
Author: Haiyang Zhang
Date: Wed Oct 11 13:30:44 2023 -0700
tcp: Set pingpong threshold via sysctl
< /code>
Проблема заключается в изменении net.ipv4.tcp_pingpong_thresh на 3 не имеет такого же эффекта производительности, как это было до 5.10.135. 77AC046A9AD3B9EE94D02F999D30DB3AC106C98C Прямо перед 562B1FDF061BFF9394CCD8844456ED1173C224FDFrom: Oleg Neumyvakin
Date: Sun, 27 Jul 2025 20:40:47 +0700
Subject: [PATCH] Fix tcp pingpong threshold
---
net/ipv4/tcp_ipv4.c | 2 +-
net/ipv4/tcp_output.c | 13 ++++++++-----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index f603ad9307af..fe5b1545c499 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -3288,7 +3288,7 @@ static int __net_init tcp_sk_init(struct net *net)
net->ipv4.sysctl_tcp_syn_linear_timeouts = 4;
net->ipv4.sysctl_tcp_shrink_window = 0;
- net->ipv4.sysctl_tcp_pingpong_thresh = 1;
+ net->ipv4.sysctl_tcp_pingpong_thresh = 3;
return 0;
}
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 8e6ebf35ed58..912080d8d80a 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -167,13 +167,16 @@ static void tcp_event_data_sent(struct tcp_sock *tp,
if (tcp_packets_in_flight(tp) == 0)
tcp_ca_event(sk, CA_EVENT_TX_START);
- tp->lsndtime = now;
-
- /* If it is a reply for ato after last received
- * packet, increase pingpong count.
+ /* If this is the first data packet sent in response to the
+ * previous received data,
+ * and it is a reply for ato after last received packet,
+ * increase pingpong count.
*/
- if ((u32)(now - icsk->icsk_ack.lrcvtime) < icsk->icsk_ack.ato)
+ if (before(tp->lsndtime, icsk->icsk_ack.lrcvtime) &&
+ (u32)(now - icsk->icsk_ack.lrcvtime) < icsk->icsk_ack.ato)
inet_csk_inc_pingpong_cnt(sk);
+
+ tp->lsndtime = now;
}
/* Account for an ACK we sent. */
--
2.43.0
Подробнее здесь: https://stackoverflow.com/questions/797 ... -threshold