我有一个应用程序,一些线程被固定到使用CPU亲和力的特定核心 .

我试图将这些线程移动到实时优先级策略,其中SCHED_FIFO / SCHED_RR具有这些策略中系统上可用的最低优先级:

param.sched_priority = sched_get_priority_min(SCHED_FIFO);

pthread_setschedparam(pthread_self(), SCHED_FIFO, &param);

结果,我对这些线程产生了很高的性能影响 .

经过一些研究后,我发现原因是一个叫做 kworker /1:0 的线程处于 R 状态,但由于它有一个常规的政策而不是实时而且因为那个饥饿而无法运行 .

当我将这个kworker线程移动到RT优先级时,我的应用程序又回到了展示高性能:

chrt --fifo -p 99

这似乎是某种 priority inversion ,我的线程正在等待这个具有较低优先级的kworker,因此不会运行 .

我试图弄清楚这个kwroker线程究竟做了什么,为什么它被卡住对我的应用程序有如此大的影响,但是,我得到的唯一线索是看它的内核回溯:

/proc//stack

[] worker_thread+0x123/0x400

[] kthread+0xce/0xe0

[] ret_from_fork+0x7c/0xb0

有什么想法吗 ?

linux实时线程调度bug,Linux实时调度 - kworker线程无法运行并导致性能影响相关推荐

  1. linux实时线程调度bug,linux中采用用户级线程模拟实现EDF和RMS两种处理机实时调度算法之改进...

    原算法中被选中任务每运行一个时间单位便将控制权交给主线程.再判断是否需要切换实时任务.实际上不需这样频繁的时钟中断. 故改进成.只在需要重新调度任务时才返回主控线程.且统计出线程切换次数(主线程切换不 ...

  2. Linux线程调度bug,Linux线程调度引起的业务问题

    一. 问题现象 1.业务组播出向报文偶尔有延迟: 2.单播出向报文平滑 二. 分析及定位 使用wireshark分析了组播出向报文的抓包,报文无丢包,但是IO 输出流量显示有burst和掉坑现象. 波 ...

  3. linux线程调度与rtos,实时Linux和RTOS的基本特性及技术进行比较

    体系结构异同 对实时操作系统(RTOS)特性进行比较和分析.对于我们刚接触这个操作系统时一定要对他们要有一定的了解,我们先对实时操作系统来了解下,它就是指当外界事件或数据产生时,能够接受并以足够快的速 ...

  4. linux 进程状态显示dl,Linux系统中的实时调度器DL调度器的原理是什么?详细概述...

    一.概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应.在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序.换句话说,当系统收到某个请求 ...

  5. 【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章(点击链接:点击链接阅读上一篇文章)讲了: CPU/IO消 ...

  6. Linux进程调度策略有哪几种,Red Hat Enterprise Linux 8的9种实时进程调度策略

    Red Hat Enterprise Linux 8的9种实时进程调度策略 Red Hat Enterprise Linux 8使用是Linux内核版本是Kernel 4.18,其系统进程的实时调度策 ...

  7. 关于解决多台linux服务器间的文件实时同步问题

    关于解决多台linux服务器间的文件实时同步问题 参考文章: (1)关于解决多台linux服务器间的文件实时同步问题 (2)https://www.cnblogs.com/fps2tao/p/1003 ...

  8. 【Linux下Inotify + Rsync文件实时同步】

    Linux下Inotify + Rsync文件实时同步 一.使用前言* 随着公司业务的发展,单web服务器不能满足用户的访问,需要增加多台web服务器实现均衡高可用性访问.为了统一各web服务器之间的 ...

  9. 硬实时RTLinux?为Linux打实时preempt_rt补丁

    开发环境为vm-ware创建的ubuntu 20.04虚拟机,4G内存,80G硬盘,4核处理器. 一.准备工作 1.内核与补丁下载: 下载与Linux系统相近版本的内核源码(Linux系统版本可通过 ...

最新文章

  1. 查看chrome驱动以及下载对应谷歌浏览器版本
  2. 联想云:借助云计算助力中国企业数字化转型
  3. django2.2连接mysql遇到的坑(亲测)
  4. Chapter 1. Introduce
  5. Android开发之设置Dialog外部页透明的方法亲测可用
  6. Rocketmq集群架构图
  7. java split空字符_java split函数结尾空字符串被丢弃的问题
  8. 第二个情人节表白网页源码
  9. 最后两个月,怎么冲业绩?
  10. C#窗口间传递消息(聊天记录)
  11. nginx访问量统计
  12. dedecms 中变量函数
  13. 网站地图在线生成html,如何制作网站地图(sitemap.html和sitemap.xml)?
  14. 关于卸载驱动精灵后蓝屏的办法
  15. 使用Thumbnails实现图片指定大小压缩
  16. html中加分割线,多种HTML分割线
  17. html怎么制作小黄人,教你如何自己动手制作小黄人模型攻略
  18. 在ros中使用glog
  19. 18年ACM赛后总结
  20. mysql判断纯数字_MYSQL中判断字符串是否为纯数字

热门文章

  1. C++实现游戏角色属性(包含文件写入)
  2. python pyc文件作用_Python中pyc文件的用途
  3. C语言 qq自动点赞程序,易语言实现QQ全自动批量点赞功能
  4. C++ Qt 实现微信聊天界面、气泡消息、gif斗图、表情包
  5. form表单提交 正则简单判断身份证号,手机号,姓名
  6. Ajax前后端交互利器详解(一)
  7. 程序创新大会报名表1.0(html)
  8. 哀悼日网站全站变灰代码
  9. SavedState-Jetpack中被“雪藏”的状态保存利器
  10. 凯禾建设,雨禾建设,凯禾实业,招贤纳士