在我们的一个php服务器+db服务器的传统架构中,随着在线人数的不断增加,我们发现db服务器显得越来越不稳定,本来这完全是预料之中的一件事情,因为平时我们可能认为非常平常的一个数据库I/O操作,在高并发时都有可能导致db server宕机,在我们确认程序流程都合理的情况下,升级了CPU、内存和硬盘速率,但情况依旧,一到一定程度(这个程度显然比我们的预警值低很多,我们认为我们的硬件支撑这么多的在线是完全OK的),马上有丢包现象,而监测也表明DB服务器剩余资源很充裕!!!这是太奇怪的问题了,再次把所有的可能的瓶颈都检查了一遍以后,得出结论,这种现象是不可能的!天,难道有外星人在控制么?
再后来,我们把唯一没有升级的一个硬件也升级了,那就是网卡升级为1000M,然而问题也就这么解决了!大家都觉得奇怪,我们之前的百兆网卡应该是完全够用的才对呀!我们的监控软件显示每秒钟的网络流量也就20M左右,离100M还有太远太远呢!!!问题既然解决了,我们就继续折腾网卡,看看这块到底是怎么回事?经过多次压测,得出一个公式,在出现丢包情况之前的最大值大约是网卡标称数据的1/8,而后就会变得不稳定!!!所以我们的系统出现了问题。
也许很多人都没有碰到过这种情况,因为他们财大气粗的公司动辄万兆网卡标配,呵呵,我写这篇文字也就是一个记录,如果你的高并发、大流量网站也和我们差不多的架构,然后也是在线量增加的时候出现丢包情况,不妨看看你的网卡。
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/70211.html