zhangqiang 发表于 2016-3-4 10:48:55

Centos出现丢包问题解决办法

环境介绍:         系统: CENTOS 6.4 64 bit         软件:nginx+mysql+php

突然收到服务器check_icmp的报警,报警显示一台网站服务器的内网网络有问题。赶紧登录服务器进行排查。首先使用ping 内网IP的方式查看内网的连通性,ping的过程中出现丢包现象,信息如下:64 bytes from 10.1.1.1: icmp_seq=34 ttl=255 time=0.928 ms64 bytes from 10.1.1.1: icmp_seq=35 ttl=255 time=1.01 msping: sendmsg: Operation not permittedping: sendmsg: Operation not permitted
显示ping不被允许,奇怪,防火墙上明明开通了icmp的协议。有问题先看日志,日志文件一般会有所记录,tail –f /var/log/messages,发现大量的如下内容:Sep 13 09:11:21 dowload_server1 kernel: printk: 261 messages suppressed.Sep 13 09:11:21 dowload_server1 kernel: ip_conntrack: table full, dropping packet
发现是当前会话数已经满了,因此出现丢包现象。这里对ip_conntrack做一下简单的介绍:IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip-sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满,那么默认空间是多少?在内存为64MB的机器上是4096,内存为128MB是 8192,内存为256MB是16384

解决办法:发现确实已经达到了最大会话数,通过google发现,可以直接调大用户的最大会话数,在/etc/sysctl.conf中加入:net.netfilter.nf_conntrack_max = 2097152,然后执行/sbin/sysctl –p时起生效


页: [1]
查看完整版本: Centos出现丢包问题解决办法