首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TCP发送缓存阻塞(Send-Q不为0)问题

现象: CEPH集群近来遇到一个重启一个节点上的所有OSD进程之后,总会有一两个PG的状态卡在peering或者是activating阶段,但是经过大概900多秒后重新建立链接后,集群可恢复ok。...users:((“ceph-osd”,pid=40468,fd=597)),rtt:2.232/4.311,lastsnd:2659,lastrcv:883587,lastack:2659 可以观察到发送端send-Q...不减少,甚至是继续增大,send-Q在建立链接之后表示的含义是当前滑动窗口里sendbuffer里的字节数,sendbuffer只有在接收到对端的ack之后才会清理掉,所以可以断定发送端是没有接收到对端的回复的...常见的TCP发送端send-Q不减少都是因为接收端接收缓存满了给发送端回复win=0的反压报文,发送端不再给接收端发送报文导致send-Q不减少,但是通过接收端的tcpinfo信息来看,接收端的接收缓存为空...复现抓包: 经过大量的复现,同时抓包,由于出问题的集群规模较大(40个节点每个节点14块盘),没法单抓某张网卡的报文,所以只能在出现问题后迅速抓包,这样就只能抓到出问题后的报文信息,下面是接收端抓到的报文信息

5.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux下Socket网络编程send和recv使用注意事项

1.send函数 ssize_t send( SOCKET s, const char *buf, size_t len, int flags ); (1)send先比较待发送数据的长度len和套接字s...,如果协议还没有开始发送s的发送缓冲中的数据或者s的发送缓冲中没有数据,那么send就比较s的发送缓冲区的剩余空间和len; (3)如果len大于剩余空间大小,send就一直等待协议把s的发送缓冲中的数据发送完...; (4)如果len小于剩余空间大小,send就仅仅把buf中的数据copy到剩余空间里(注意并不是send把s的发送缓冲中的数据传到连接的另一端的,而是协议传送的,send仅仅是把buf中的数据copy...注意: (1)如果send函数copy数据成功,就返回实际copy的字节数,如果send在copy数据时出现错误,那么send就返回-1;如果send在等待协议传送数据时网络断开的话,那么send函数也返回...Q&A: (1)两次send一次recv会发生什么? 一次性读取两次send的内容。 (2)recv之后,接收缓冲区会被清空吗? 是的。

2.9K31

Linux VPS使用命令行通过Firefox Send轻松安全地共享文件

说明:Firefox Send可能很多人知道,一个很不错的临时文件分享系统,官方地址→传送门,用的人也挺多的,之前博主曾水过自建Firefox Send的教程,具体查看→传送门,不过都只能通过网页端共享...流加密和上传/下载,内存占用非常低 即将推出:Firefox帐户集成(下载次数越多,到期时间越长) 安装 Github地址:https://github.com/timvisee/ffsend 系统要求:Linux...、macOS、Windows,这里就只说Linux系统,Windows/macOS直接通过网页上传吧。...安装ffsend: #下载二进制文件 wget https://github.com/timvisee/ffsend/releases/download/v0.2.46/ffsend-v0.2.46-linux-x64...local history for actions -I, --no-interact Not interactive, do not prompt -q,

80000

我在Linux内核社区当开发者 | Q推荐

作为 Linux 社区的主要贡献者之一,华为公开承诺投入资源,协助进行 Linux Kernel 测试和补丁回合。...她所在的项目组主要关注 Linux 存储领域,她具体参与的是 Linux 存储 IO 栈相关工作。对她来说,“以前没有接触过 Linux 社区,只是研究方向与内核有关”。...2 吴峰光:Linux 就是我的游戏 吴峰光,接触 Linux 超过 20 年,曾因社区贡献获得 Linux 之父 Linus Torvalds 的好评。...3 Mauro Chehab:从一名终端用户到 Linux 社区核心贡献者 Mauro Chehab,Linux 内核 Media 子系统维护者,Linux 5.8 版本贡献排名第一,Linux 5.10...Jonathan Corbet 撰写了一些 Linux 著作,他为 Linux 内核开发人员维护了一个非常有价值的网站,专注于开源和 Linux

1K10

Linux 之父亮相,这个开源社区要“搞大事” | Q 推荐

当我们打开网站和使用 App 时,很多人并不知道,支撑这些软件和服务的,是后台成千上万台 Linux 服务器。...作为当今流行的操作系统,Linux 运行于绝大部分全球超算 500 强、超过 70% 的智能手机、嵌入式设备、智能电视和智能手表等设备。毋庸置疑,它已经成为人类信息技术不可或缺的一部分。...Linux 可谓无处不在,它是整个开源世界的灵感源泉。作为享誉全球的开源项目,Linux 的成功既是内核社区成千上万开发者贡献的结果,也离不开一个人。...他就是 Linux 之父,Linus Torvalds。...其中,Linux 创始人 Linus Torvalds 将以“The Linux now and the Future”为主题与神秘嘉宾对话,让您有机会了解全球著名开源项目 Linux 的过去、发展和未来

91840

服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能

命令 九、top命令 九条指令查看Linux服务器指令 一、uptime 这个命令可以快速查看机器的负载情况。...在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。...读写量过大,可能会引起性能问题。 await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。...如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。 avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。...TCP重传可能是因为网络环境恶劣,或者服务器压力过大。 ---- 九、top命令 又是个霸屏指令了。 top命令包含了前面好几个命令的检查的内容。

1.9K40

Q4OS Linux发行版使用Debonaire新桌面主题

Q4OS团队宣布他们在基于Debian的GNU/Linux发行版中使用Trinity Desktop Environment的新桌面主题。...Q4OS是基于最新Debian GNU/Linux操作系统的小型Linux发行版,围绕Trinity Desktop Environment(TDE)构建。...它被明确地设计为习惯Microsoft Windows的任何人更容易的转换到Linux。 这个新的桌面主题被称为“Debonaire”,新的桌面主题为窗口标题栏和面板使用黑暗的元素。...在默认情况下,在操作系统的未来版本中启用它之前,Q4OS团队希望您在Q4OS安装中安装Debonaire主题,进行测试,并在论坛主题中发布反馈(正面或负面)。...如果你以前没有不使用Q4OS,现在可以从网站上下载 Q4OS 2.4 “Scorpion”。

98010

我发现 Linux 文档写错了

周末的时候,有位读者疑惑为什么 Linux man 手册中关于 netstat 命令中的 tcp listen 状态下的 Recv-QSend-Q 这两个信息的描述跟我的图解网络写的不一样?...和 Send-Q 的描述?...半连接队列的大小(自内核版本 2.6.18 起) Send-Q:如果 TCP 连接状态处于 Established,Send-Q的数值表示发送缓冲区中已发送但未被确认的数据大小;如果 TCP 连接状态处于...连接状态处于 Listen 状态,Recv-Q 的数值表示当前 syn 半连接队列的大小 当前全连接队列的大小; Send-Q:如果 TCP 连接状态处于 Established,Send-Q的数值表示发送缓冲区中已发送但未被确认的数据大小...所以,我们直接看 tcp4_seq_show() 函数是根据什么信息打印出 Recv-QSend-Q 的数据。

1.3K30

Linux系统之运行状态分析及问题排查思路

一、CPU分析 分析CPU的繁忙程度,两个指标:系统负载和CPU利用率 1、系统负载分析 系统负载:在Linux系统中表示,一段时间内正在执行进程数和CPU运行队列中就绪等待进程数,以及非常重要的休眠但不可中断的进程数的平均值...说白了就是,系统负载与R(Linux系统之进程状态)和D(Linux系统之进程状态)状态的进程有关,这两个状态的进程越多,负载越高。 查看系统负载,见top命令:第1部分。...TIME_WAIT状态的连接,说明该服务器经常主动发起连接关闭操作,这是不可取的; 若一个系统频繁出现CLOSE_WAIT状态的连接,说明该系统并未立即处理连接关闭请求,系统存在缺陷; 分析网络队列 若Recv-Q过大...,说明系统未能及时处理外部发来的请求; 若Send-Q过大,说明系统发包速度过快以至于连接无法及时将数据发出,或者对端接收数据包慢 这两个值通常应该为0,如果不为0可能是有问题的;数据包在两个队列里都不应该有堆积...分析服务器端能否正常处理客户端连接 如果Recv-Q队列大小值>=设置的somaxconn值(cat /proc/sys/net/core/somaxconn)说明服务器无法适应当前连接建立速度,不能及时

2K20
领券