首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    GPDB-内核特性-UDPIFC超时重传

    GPDB-内核特性-UDPIFC超时重传 GreenPlum默认使用UDP协议进行数据传输。发生网络拥塞时,实现了超时重传以解决拥塞。...3)numOutStanding:unack_queue_ring中未处理包的个数 4)numSharedOutStanding:拥塞窗口中使用共享带宽的未处理包的个数 5)ICBufferList slots...每个槽位都是一个链表,表示一个时间段内的所有ICBuffer包 2、超时重传机制 1)执行器启动时初始化lastExpirationCheckTime时间,可以认为最初是ExecutorStart的时间戳...(4)判断此时距离上次超时检测是否超过50ms。 (5)超过50ms:pollAcks->poll超时时间是0,不阻塞立即返回。...,但最小为20ms,最大不能超过1s 然后,看下slots[]使用机制: #define UNACK_QUEUE_RING_LENGTH (UNACK_QUEUE_RING_SLOTS_NUM * TIMER_SPAN

    16540

    从内核角度看怎么设置connect超时

    但我们发现 connect 函数并没有提供超时的设置,而在 Linux 系统中,connect 的默认超时时间为75秒。所以,在连接不上服务端的情况下,我们需要等待75秒,这对我们不能接受的。...通过 SO_SNDTIMEO 设置 connect 超时时间 虽然 connect 系统调用没有提供超时的设置,但我们通过查阅 Linux 内核代码可以发现,connect 系统调用的超时时间可以通过...,为什么在 Linux 中还能设置 connect 的超时时间呢?...连接超时了。 连接被中断了。 如果连接成功,connect 会返回0;如果连接超时,connect 会返回 EINPROGRESS 错误;如果连接被中断,connect 会返回 EINTR 错误。...添加到多路复用 IO 中进行监听,并且设置多路复用 IO 的超时时间即可达到设置 connect 超时时间的目的,如下代码: int connect_timeout(int sockfd, struct

    2.1K10

    从应用到内核查接口超时(下)

    再启 ---- 接上文 从应用到内核查接口超时(中),查到是因为 journal 导致 write 系统调用被阻塞进而导致超时后,总感觉证据还不够充分,没有一个完美的交待。...具体步骤为: 多个线程不便于抓内核栈,先将程序修改为单线程定量写入。 使用 jar 包启动一个进程,使用 ps 拿到进程号。...再通过 top -H -p pid 拿到占用 cpu、内存等资源最多的线程 ID,或使用 strace 启动,查看其输出里正在写入的线程 ID。...使用 watch 命令搭配 pstack 或 cat /proc/pid/stack 不停打印进程内核栈。...先不说我们测试机的重启需要建提案等两天,编译完能不能启动得来我真的没有信心,第一次试图使用 perf 分析 linux 性能问题就这么折戟了。

    1.4K20

    从应用到内核查接口超时(中)

    应用复现 ---- 接着上文 从应用到内核查接口超时(上) 继续排查导致接口超时的原因。 转载随意,文章会持续修订,请注明来源地址:https://zhenbianshu.github.io 。...系统当然不会容忍不定时的 write 阻塞,linux 还会定时启动 pdflush 线程,判断内存页达到一定的比例或脏页存活时间达到设定的时间,将这些脏页刷回到磁盘上,以避免被动刷缓冲区,这种机制就是...文件系统特性 接口超时比例 ext4(同线上) 0.202% xfs文件系统 0.06% page过期时间和pdflush启动时间都设置为 0.8s 0.017% ext4 挂载时 journal...模式为 writeback 0% 禁用 ext4 的 journal 特性 0% log4j2 使用异步日志 0% 小结 ---- 接口超时问题总算是告一段落,查了很久,不过解决它之后也非常有成就感...遗憾的是没有在 linux 内核代码中找到证据,160M 的代码,分层也不熟悉,实在是无从查起,希望以后有机会能慢慢接触吧。

    60120

    从应用到内核查接口超时(上)

    这个问题出现在典型的高并发场景下,现象是某个接口会偶尔超时,查了几个 case 的日志,发现 httpClient 在请求某三方接口结束后输出一条日志时间为 A,方法返回后将请求结果解析成为 JSON...由于我们的 JVM 在启动时添加了 -XX:+PrintGCApplicationStoppedTime 参数,而这个参数的名字跟它的意义并不是完全相对的,在启用此参数时,gclog 不仅会打印出 GC...其中间隔甚至不足 1ms,也就是说一次停顿持续了几十 ms 之后,系统还没有开始运行,又会进行第二次 STW,如上图的情况,系统应该会一次 hang 住 120ms,如果次数再频繁一些,确实有可能会导致接口超时...服务启动时,使用 -XX:+UnlockDiagnosticVMOptions -XX:+PrintSafepointStatistics -XX:+LogVMOutput -XX:LogFile=....明白了 JVM 为什么会频繁进行 STW,再修改服务启动参数,添加 -XX:-UseBiasedLocking 参数禁用偏向锁后,再观察服务运行。

    52121

    系统启动及内核管理

    此时的问题就是,真正的根分区并不在boot目录下,系统启动需要的一些lib文件也并不在boot目录下,内核要启动根分区就得加载根分区的驱动,由于内核大小和开机速度限制,以及不同的主机不同的根文件系统的限制...步骤七:启动内核模块 依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。...c进入,也可以在命令行输入grub命令进入;grub命令行用于更改内核特性,开机参数,也可以指定内核和虚根文件等,输入help查看可以使用的命令。...title TITLE定义菜单标题 root (hd#,#) 给定stage2和内核的位置 kernel 启动的内核 initrd 虚根文件 password [–md5] STRING 选择内核后,...; 放入/etc/init.d/目录下,使用chkconfig –add *.sh添加服务 使用chkconfig –list 查看服务启动级别 使用chkconfig –level # *.sh更改启动级别

    1.2K80

    linux内核启动过程分析

    set_task_stack_end_magic start_kernel是内核启动阶段的入口,通过单步调试,可以发现它是linux内核执行的第一个init,我们单步进入看看它做了哪些操作: ?...因此,内核能映射的内存空间,只有1G大小,但实际上比这个还要小一些,大概是896M,另外128M空间是用来映射高端内存使用的。...如果系统是64位系统,当然就没未必要有高端内存存在了,因为64位有足够多的地址空间给内核使用,访问的内存可以达到10G都没有问题。...在32位系统里,内核为了访问超过1G的物理内存空间,需要使用高端内存映射表。比如当内核需要读取1G的缓存数据时,就需要分配高端内存来使用,这样才可以管理起来。...使用高端内存之后,32位的系统也可以访问达到64G内存。 linux_banner变量保存着linux内核的版本号: ?

    4.3K30

    EasyCVR通过ServiceInstall启动,内核未能启动是什么原因?

    EasyCVR是我们接入协议十分广泛的视频服务平台,可支持主流协议如国标GB28181、RTSP/Onvif、RTMP等,还支持厂家私有协议及SDK,包括HIKSDK、DAHUA、海康Ehome等,使用场景也非常广泛...有用户反馈,软件运行EasyCVR.exe程序后,登录平台接入设备可正常播放视频,而使用service install启动程序后登录平台,视频则出现了无法播放的情况,请求我们协助排查。...登录用户的EasyCVR平台查看版本信息,信息反馈是软件内核报错。通过任务管理器查看,软件内核进程是未启动状态。...最后查看软件easycvr.ini配置文件, 原来此处runmod=process,表明是以进程方式运行内核,更改成service,以服务方式运行内核即可解决上述问题。...我们在此前也分享过关于EasyCVR平台内核未能启动的技术排查文章,用户若遇到类似问题可以翻阅我们往期的文章进行了解。

    31120
    领券