当前位置: 首页 > news >正文

中铁广州建设有限公司网站手机建设网站公司

中铁广州建设有限公司网站,手机建设网站公司,网页访问紧急升级,免费网络电视直播检查麒麟系统 /var/log/dmesg 、var/crash/vmcore /var/log/messages,发现以下信息 1、[10416833.187406] Tasks state (memory values in pages): 标记内存任务状态信息的开始,后续会列出各进程的内存使用等状态数据(以页为单位统计&…

检查麒麟系统 /var/log/dmesg 、var/crash/vmcore   /var/log/messages,发现以下信息

1、[10416833.187406] Tasks state (memory values in pages):

标记内存任务状态信息的开始,后续会列出各进程的内存使用等状态数据(以页为单位统计) ,用于排查内存相关问题时,查看系统中进程的内存占用、分配等情况。

2、[10416833.187438] Out of memory and no killable processes...

3、[10416833.187440] Kernel panic - not syncing: System is deadlocked on memory

  • Out of memory and no killable processes...:表示系统发生内存耗尽,且没有可被内核杀死(释放内存)的进程。通常内核在内存不足时,会尝试杀掉一些低优先级进程回收内存,这里连可杀进程都没有,说明内存紧张到极致。
  • Kernel panic - not syncing: System is deadlocked on memory:触发内核崩溃(Kernel panic) ,原因是 “系统因内存出现死锁” 。内存死锁意味着内存分配、回收等机制陷入相互等待的僵局,系统无法正常调配内存资源,严重到让内核无法继续稳定运行,只能抛出崩溃信息。

4、[10416833.191763] CPU: 3 PID: 1 Comm: systemd Kdump: loaded Tainted: G OEL 4.19.90-23.48.v2101.ky10.x86_64 #1

  • 指明崩溃发生时,涉及的CPU核心是 3 号,进程PID为 1(这里是systemd进程,它是系统初始化和服务管理的关键进程 ),还提到Kdump已加载(用于内核崩溃时转储内存等调试信息)、内核 “tainted” 状态(表示内核可能被非官方模块修改等,影响调试纯净度 ),以及内核版本等信息。

5、检查messages 文件

在触发OOM之前内核已经在频繁出现软锁告警,grep "soft lockup"  /var/log/messages

6、软死锁的检测原理看门狗中断处理函数中当前的时间减去上一次发生进程调度的时间如果大于20S,就会触发软死锁,所以这个时间是大于20S的,且看门狗定时器中断20/5=4s一次,所以触发软死锁的时间在20s到24s之间都有可能。

7、排查分析

使用4.19.90-23.40内核版本未出现过此问题,安装补丁后,发现虚拟网卡驱动在4.19.90-23.42版本合入一个上游补丁

补丁链接:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=31c03aef9bc22a64a8324d650ca4198819ef3a33),该补丁启用了napi_tx功能。

8、结论

1,内核panic是因为内存不足触发OOM,但是之前内核日志中已经频繁在报软锁告警,因此软锁告警才是问题的根本原因。

2,应用进程通过系统调用执行tpacket_snd函数发包,底层virtio_net网卡驱动未能将发送完成的skb数据进行释放清理,pending_refcnt计数没有清零,导致CPU在tpacket_snd函数do-while循环中无法退出,触发软锁告警。

3,在23.42版本之上的内核中,开启了napi_tx,tpacket_snd函数发送数据包,只能在软中断中执行tpacket_destruct_skb对pending_refcnt减1,在这之前CPU会陷入do-whlie循环中,而循环退出的条件又只能在软中断处理中去执行,刚好软中断也是在同一个CPU上,而且对应的ksoftirqd进程又被调度唤醒(实际得不到执行),在硬中断irq_exit中也无法执行软中断处理,即此CPU上的软中断永远得不到调度执行了,从而就卡死在这里了。

9、解决方法

方案1:后续在新版本内核中撤掉使能napi_tx的补丁,升级到新版本系统内核解决。

方案2:更改应用发包模式,从堵塞改为非堵塞。

加点 非相关知识

KVM、QEMU和Libvirt三者之间的关系
在虚拟化技术中,KVM、QEMU和Libvirt是三个重要的组件,它们各自承担不同的角色,并相互协作实现完整的虚拟化解决方案。
1、KVM(Kernel-based Virtual Machine)是Linux内核中的一个模块,它利用硬件辅助虚拟化技术(如Intel VT和AMD-V)实现CPU和内存的虚拟化。KVM通过/dev/kvm接口提供虚拟化功能,用户态程序可以通过ioctl函数访问这个接口
2、QEMU是一个开源的模拟器和虚拟机管理程序,它可以模拟各种硬件设备,如CPU、网卡和磁盘等。QEMU与KVM结合使用时,QEMU负责模拟I/O设备,而KVM负责CPU和内存的虚拟化。这种组合被称为QEMU-KVM,它能够实现高性能的虚拟化,因为KVM直接利用硬件虚拟化技术,而QEMU则处理其他设备的模拟。
3、Libvirt是一个开源的虚拟化管理工具和API,它提供了对KVM虚拟机的管理功能。Libvirt通过调用QEMU-KVM来操作虚拟机,简化了虚拟机的管理过程。Libvirt的守护进程libvirtd可以被本地或远程的virsh命令调用,从而实现对虚拟机的管理。
总的来说,KVM、QEMU和Libvirt三者之间的关系可以总结如下:
KVM:提供CPU和内存的虚拟化。
QEMU:模拟I/O设备,与KVM结合实现完整的虚拟化。
Libvirt:管理工具和API,通过调用QEMU-KVM简化虚拟机的管理。
通过这三者的协作,用户可以实现高效、灵活的虚拟化解决方案。

http://www.yayakq.cn/news/622739/

相关文章:

  • ai效果图网站手机可以搭建网站么
  • 浙江台州网络设计网站网站服务器租用哪家好
  • 哪些网站可以接点私活做的大型企业策划咨询公司
  • 黔南州建设局门户网站多多卡起货网站建设
  • 高端企业门户网站建设费用深圳网站制作首荐祥奔科技
  • 如何做一个更新网站小说网站源码带采集
  • 建立网站该怎样做密云青岛网站建设
  • 网站域名和服务器到期山东省聊城建设学校网站
  • django做的网站wordpress后台登录网址
  • 成都快速建网站印刷行业网站建设
  • 江苏省 建设 注册中心网站怎么制作一个团购小程序
  • 企业网站服务器建设方法北京网站建设+招聘信息
  • 做怎样的网站能赚钱zuiruo笑话类博客wordpress主题
  • 企业站seo哪家好导购网站如何做
  • 家具公司网站页面设计模板红灰搭配网站模板
  • 教育 网站模板番禺免费核酸检测
  • 网站整体排名大幅下降网站域名后缀有什么用
  • 网站建设培训要多久wordpress rest post
  • 外汇平台网站开发需求说明联盟营销平台
  • 杭州网站建设公司导航厦门房地产网站建设
  • 网站域名怎么修改吗北京科技公司
  • 长沙网站制作公司地址中山有做网站的公司吗
  • 成都网站平台建设设计网站建站
  • 推荐西安优秀的响应式网站建设公司多用户购物商城
  • 网站开发基础语言营业执照上有以上除网站制作
  • 上海建设网站制作深圳龙华区有什么好玩的景点
  • 网站推广软件免费观看沐风 wordpress
  • 郎溪县建设局网站十大网络游戏
  • 狠狠做网站改成什么了淄博网站制作企业营销
  • 建网站的费用是多少怎么做购物网站系统文本