故障现象

同一台物理机上的多台虚拟机同时出现应用服务超时、无法访问等现象,ping虚拟机和物理机丢包严重。

故障原因

物理机上某台虚拟机建立了大量连接,导致物理机连接追踪表被大量ESTABLISHED连接记录塞满,进而出现丢包现象。

处理方法

调整物理机内核参数,增大最大连接追踪记录数、减小ESTABLISHED、TIME_WAIT、CLOSE_WAIT、FIN_WAIT等连接记录的超时时间。

排查过程

一开始从业务层面排查,分析是否有某台虚拟机占用带宽的情况,但是排查监控和实时流量并没有发现问题,未果。第二次出现问题时,在宿主机上ping故障虚拟机,出现“ping: sendmsg: Operation not permitted”的报错:

# ping 172.16.3.5PING172.16.3.5 (172.16.3.5) 56(84) bytes of data.ping: sendmsg: Operation not permittedping: sendmsg: Operation not permittedping: sendmsg: Operation not permittedping: sendmsg: Operation not permitted

查看内核日志,报错如下:

# dmesg | tail[64802472.971773] nf_conntrack: table full, dropping packet

[64802472.972242] nf_conntrack: table full, dropping packet

[64802472.973668] nf_conntrack: table full, dropping packet

[64802472.978622] nf_conntrack: table full, dropping packet

[64802472.988458] nf_conntrack: table full, dropping packet

[64802472.991945] nf_conntrack: table full, dropping packet

[64802472.998772] nf_conntrack: table full, dropping packet

[64802472.999542] nf_conntrack: table full, dropping packet

[64802473.001464] nf_conntrack: table full, dropping packet

[64802473.001768] nf_conntrack: table full, dropping packet

发现是由于连接追踪表满导致丢包。其实这个问题出现过一次,当时是存在大量TIME_WAIT连接记录所致,现在这个问题是存在大量ESTABLISHED连接记录所致:

# cat /proc/net/nf_conntrack | awk '/^.*tcp.*$/ {count[$6]++} END {for(state in count) print state, count[state]}'LAST_ACK36SYN_RECV52CLOSE_WAIT350CLOSE844ESTABLISHED246265FIN_WAIT4SYN_SENT993TIME_WAIT9996

找到问题所在就好办了,通过调整相关内核参数解决:

# sysctl -a | grepnf_conntrack

net.nf_conntrack_max= 2097152net.netfilter.nf_conntrack_max= 2097152net.netfilter.nf_conntrack_buckets= 65536net.netfilter.nf_conntrack_tcp_timeout_fin_wait= 30net.netfilter.nf_conntrack_tcp_timeout_time_wait= 30net.netfilter.nf_conntrack_tcp_timeout_close_wait= 60net.netfilter.nf_conntrack_tcp_timeout_established= 3600

将以上参数写入/etc/sysctl.conf中,执行sysctl -p生效。

另外还有net.netfilter.nf_conntrack_buckets参数,指定哈希表的大小。在4.8及以上的内核可以通过sysctl修改,在4.8之前的内核中是只读的,只能通过修改/sys/module/nf_conntrack/parameters/hashsize来修改。

参考资料

虚拟机到服务器丢包,虚拟机丢包问题排查处理相关推荐

  1. 虚拟机看服务器mac地址,虚拟机修改服务器mac地址吗

    虚拟机修改服务器mac地址吗 内容精选 换一换 本章节指导用户为Windows系统的ECS主机添加域名解析并添加安全组,防止下载Agent安装包与采集监控数据时出现异常.修改ECS的DNS配置有两种方 ...

  2. 可不可以在云服务器上安装虚拟机,云服务器可以安装虚拟机么

    云服务器可以安装虚拟机么 内容精选 换一换 云服务器创建后区域固定,不能将云服务器转移到另一个区域,也不能将云服务器转移到另一个帐号.您可以通过镜像迁移方式实现云服务器的跨帐号跨区域迁移.服务器迁移的 ...

  3. 虚拟机修改服务器mac地址,虚拟机修改服务器mac地址

    虚拟机修改服务器mac地址 内容精选 换一换 源端服务器数据收集声明.源端服务器上安装和配置完迁移Agent后,迁移Agent会把源端服务器信息发送给主机迁移服务校验,收集的源端服务器的详细信息请参见 ...

  4. 云服务器本质是虚拟机,云服务器本质是虚拟机

    云服务器本质是虚拟机 内容精选 换一换 GaussDB(DWS) 提供的gsql命令行客户端,它的运行环境是Linux操作系统,在使用gsql客户端远程连接GaussDB(DWS) 集群之前,需要准备 ...

  5. 云服务器就是虚拟机,云服务器就是一个虚拟机吗

    云服务器就是一个虚拟机吗 内容精选 换一换 VR云渲游平台与周边服务的依赖关系如表1所示. 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等 ...

  6. 云服务器是一个个虚拟机,云服务器就是一个虚拟机吗

    云服务器就是一个虚拟机吗 内容精选 换一换 简要介绍Rsyslog是一个集中日志管理工具,基于流行的服务端/客户端模式,通过TCP或者UDP传输协议来发送日志信息,或者从网络设备.服务器.路由器.交换 ...

  7. 华为服务器建虚拟机,在服务器上创建虚拟机

    在服务器上创建虚拟机 内容精选 换一换 服务器迁移通常有三种手段:全新部署业务.主机迁移服务.镜像迁移,如表1所示.对于华为云上云服务器的跨帐号跨区域迁移,建议采用镜像迁移方式.跨帐号跨区域迁移云服务 ...

  8. 怎么将虚拟机成服务器,如何将虚拟机变成云服务器

    如何将虚拟机变成云服务器 内容精选 换一换 按需购买的两台同类型弹性云服务器(操作系统类型相同,如Windows和Windows,Linux和Linux),关机卸载系统盘后,重新挂载至对方弹性云服务器 ...

  9. 服务器安装macos虚拟机,windows服务器装macos虚拟机系统

    VMware14安装黑苹果macOS10.13流程 一.准备工具 VMware Workstation 14.1.2 Pro macOS High Sierra 10.13.iso格式或.cdr格式( ...

  10. 服务器虚拟机密度,服务器整合:虚拟机密度大未必好事

    北极星电力软件网讯:虚拟化技术已经给数据中心带来颠覆性变革,但极力压缩服务器虚拟化主机数量.过度提高虚拟机密度的做法并非最佳选择. 在考虑虚拟化环境时,时代特色造就了一种新趋势,即将极为丰富的资源赋予 ...

最新文章

  1. 2.5 学习词嵌入-深度学习第五课《序列模型》-Stanford吴恩达教授
  2. #2989. 数列(cdq分治/曼哈顿距离)
  3. exe打包工具哪个最好_一键分发工具哪个最好用?30万人选择这款
  4. python景点情感分析代码_python snownlp情感分析简易demo(分享)
  5. 3、构建并安装PHP扩展
  6. C语言线性表之循环单链表
  7. [LeetCode]168. Excel Sheet Column Title
  8. 判断是手机端/pc端
  9. 什么是银行的表内表外业务?
  10. 【Excel 教程系列第 16 篇】打印 Excel 表格时,如何设置每页都有表头
  11. VCS建立仿真生成DVE波形
  12. 微服务容器化运维:微博容器运维平台DCP
  13. [emerg]: unknown directive “”
  14. 数据库关系模型与关系运算---2022.2.13
  15. 报错:工作中心缺少公式CK430-PS
  16. 腾讯云服务器被黑客挂pnscan病毒排查
  17. [windows]如何打开注册表编辑器
  18. LZ4 和 LZMA 压缩算法针对不同格式的压缩比数据测试
  19. it技术 学习资料库 红黑联盟:
  20. BIGEMAP使用Unity3D制作真实地形的两种方法

热门文章

  1. day2 craps赌博游戏
  2. 运动轨迹 php,两种JS实现小球抛物线轨迹运动的方法
  3. ipad上编译运行代码_是否可以在iPad上编写和运行PHP代码?
  4. 学籍管理系统设计 mysql_学生学籍管理系统数据库设计及查询.pdf
  5. Windows下GetLastError()返回值介绍
  6. Science | 郑文山等发布微生物组单细胞测序新技术Microbe-seq(王军/戴磊/晁彦杰点评)...
  7. Install JD-GUI on Mac OSX
  8. 《编码:隐匿在计算机软硬件背后的语言》一书勘误
  9. linux安装杀毒软件
  10. 11的倍数c语言,11-1,5,11,12的倍数(容斥原理)