首页 > 其他分享 >mmap_sew延迟问题

mmap_sew延迟问题

时间:2022-11-11 10:01:20浏览次数:39  
标签:sew clock mmap 问题 75min 卡顿 延迟

最近项目上遇到一个延迟问题。问题的现象如下:

 

 程序运行在arm上, linux版本是Linux version 5.10.35-dirty (root@Newu) (aarch64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1)
从启动开始,每次大约在75min左右,协议栈里面运行的函数就会卡住,卡的时间一般在3-5ms(调用clock_gettime()看的卡顿时间.)  

最开始怀疑应用程序的问题,针对问题进行的业务模型简化,在隔离的独立的core上单独只跑出问题的线程,这个线程设置为schd_FIFO, 优先级设置为99. 发现还是在75min卡顿(可能卡顿在不同的函数,或者不同赋值语句地方。)。例如:
clock_gettime(CLOCK_REALTIME,&starttime);
Fun();  //空函数
clock_gettime(CLOCK_REALTIME,&endtime);  两个时间差相减就是3-5ms.  这个空函数肯定不需要这么久。不清楚这个时候系统出了什么问题。
在75min卡顿后,后面可能出现卡顿多次,也可能一直不出现卡顿,没有周期性。

 

对业务程序进行极致版简化后问题依然出现,接着怀疑是否系统有问题。后面通过ftrace来分析内核调用过程,显示每次在73min左右会出现do_mem_abort出发缺页流程。如下所示

但是在进行缺页处理的时候,拿不到mmap_sew这个锁,在这个地方卡住了几ms.  但是是谁持有了这把锁, 怎么去优化,这些都是linux 内核知识。

 

 从网上找了两篇关于这方面的介绍:

mmap_sem信号量死锁故障分析

https://blog.csdn.net/lijzheng/article/details/23216633

 

内核mmap_sem锁的危害和相关优化

https://blog.csdn.net/buhui912/article/details/124984815

但由于缺少这方面的知识,没有继续往下查,而是转去优化mem这方面的问题。

 

标签:sew,clock,mmap,问题,75min,卡顿,延迟
From: https://www.cnblogs.com/beilou310/p/16879643.html

相关文章

  • 关于使用pt-heartbeat监测MySQL主从复制延迟的方法
    pt-heartbeat的工作原理通过使用时间戳方式在主库上更新特定表,然后在从库上读取被更新特定表里的时间戳,再与本地系统时间对比来得出其延迟。具体流程:1)在主库上创建一张heart......
  • 【Azure 环境】Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError
    问题描述Azure流分析服务(SteamAnalytics)报出OutputDataConversionError错误引起延迟及超时。查看详细错误:  问题解答在错误消息中,有非常明确的提示:Cannot......
  • 延迟满足感
    所有的成功都是延迟满足感所带来的,及时行乐短暂快乐都只是饮鸠止渴罢了。锻炼身体,短时间看不出什么效果,但是坚持下去,你会获得一个完全不同的幸福感以及健康的身体。哪怕你......
  • api网关 & 微服务架构 & 延迟服务
     ----------------------网关-----------------------字节跳动kube-apiserver高可用方案KubeGateway EnvoyGateway会成为网关现有格局的冲击者吗?|专访Envoy创始......
  • MongoDB复制集设置复制延迟节点
    将延迟成员的vote设置为0,并将延迟成员隐藏,可以提升性能。延迟节点需要满足的条件:·优先级为0,这样就不会变成主节点。·是隐藏的,应用不应该查询隐藏节点·Oplog窗口能力必......
  • python print 打印延迟问题解决
    转载:https://wenku.baidu.com/view/ffc89347bb4ae45c3b3567ec102de2bd9705de56.html?wkts=1667639107060&bdQuery=python+print%E7%AB%8B%E5%8D%B3%E6%89%93%E5%8D%B0......
  • 播种和收获——延迟幸福感
    播种和收获不在同一个季节,中间隔着的一段时间,我们叫它为“坚持”成长,在于每一天的获得和积累;提高,在于自己的学习和努力。西点军校第一任校长,乔纳森·威廉斯曾说过:“不管你......
  • js延迟加载、js异步加载
    1.js延迟加载(1)js延迟加载是js性能优化的一种方式(2)作用:为了提高网页的加载速度(3)原理:等网页加载完成之后再加载js文件··需要优化的原因:HTML元素......
  • docker rabbitmq安装延迟插件
    首先,已经安装有rabbitmq3.8.17    1、下载插件地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/tags  2、将下载的插件上传到容器中:/p......
  • 本地延迟队列
    本地延迟队列DelayQueue是无界的特殊注意:放入DelayQueue队列中的数据必须实现Delay接口,可以通过指定方法获取到是否到执行时间及比较运算逻辑1.定义本地延迟队列@Sl......