将带宽作为100 Mbps连接的第一个可扩展性瓶颈是否正常?

我正在对一个我们正在制作的网站进行压力testing,与我的预期相比,我们发现了一个非常令人惊讶的结果:
我们的网站开始加载速度非常缓慢,同时有几百人,即使CPU和内存都很好。 看任务pipe理器,networking选项卡,我看到我的100 Mbps网卡最高为98%。

出于某种原因,这听起来对我来说是非常荒谬的…
每次我读取可扩展性的东西,CPU,内存,caching等等,在这里我遇到了网卡本身的瓶颈。

我们为我们的所有内容提供服务,而且我们的主页有点沉重,但不是那么多。 我从来没有料到网卡会成为瓶颈。

这是正常的吗?
大家都面对使用1Gbps网卡的网站吗?
我认为100 Mbps将是标准。

我看错了什么? 我是否正确解释“networking”选项卡中的graphics?

注:我可以想出很多方法来解决这个问题,从获得1 Gbps卡开始,并将静态文件移动到他们自己的服务器上。 我的问题主要在于是否每个人都只使用1 Gbps的连接,这会让我大吃一惊。

这听起来好像你正在饱和你的可用带宽。 你或者需要减less你的带宽,或者切换到一个1Gbps的卡,这是我通常期望在一个面向公众的Web服务器中find的(当然,我最后碰到的每一个服务器类的机器都是这种情况10年 – 你在哪里find了一个廉价的100MBPS卡的服务器呢?这真的是一个改变了用途的桌面?)。

有些事情要检查或考虑:

  • 你不提高caching。 如果您的网站在某种程度上被设置为不能为静态文件(如图像)返回良好的caching标题,那么您将会大受打击。 使用FireFox和YSlow插件(来自Yahoo)向您显示比较caching和未caching页面大小的饼图。
  • 你的testing方法是什么? 您的100个“用户”是否尽可能快速访问该网站? 怎么样caching – 如果你的用户只是一些抓住一些页面的机器人,他们可能会忽略你的caching提示(见最后一点)。
  • 您正在使用gzip压缩,但是您的内容有多less是文本(gzip帮助)以及图像和其他二进制文件(gzip通常什么都不做)?
  • 您是否将networking带宽用于其他任何function – 例如单独的数据库服务器?
  • 你没有真正具体的有多大的网页(使用YSlow找出)。 您是否可能使用大图像来代替缩略图(我已经看到了我的公平份额的网站有几兆字节的图像在一个页面上,因为devise师/devise师的工具只是使用宽度和高度的HTML属性来缩小图像文件到缩略图)。

带宽作为第一个瓶颈是不是我太惊讶。 多年来,CPU,RAM,HD和其他所有组件都出现了突飞猛进的发展,而现在已有十多年的历史。 所以,你处在一个好的箱子里,这个箱子不仅能够处理典型的负载,而且还使用了十年前的技术。

即便如此,您是否确定您的100个用户同时模拟是真实世界stream量的真实反映? 有100绝对同时点击,它只需要服务每个1兆,或128K每个,为您达到高峰stream量。 这是一个非常低的天花板,我的感觉是 – 除非你确定你会得到这种用法 – 你可能需要修改你的负载testing。

多年来,简单,function较差的Web服务器一直在吹嘘他们的速度,多年来,Apache的爱好者一直在指出,Apache速度足够快,容易饱和networking接口。 听起来就像你有一个有效的网站。 你是真的抽100兆比特,还是networking堆栈只占用大量的CPU?

我build议检查你的环境的networking端:

  • 有没有广播风暴或愚蠢的聊天协议吃你的带宽?
  • 检查switchport是否在100 /满(不知道你是否可以检查Windoze)。 半双工非常糟糕。
  • 看交换机端口上的错误计数器是否> 0。 如果是这样,请更换电缆和/或NIC,并尝试另一个端口。

如果没有问题,请升级到千兆位(无论如何应该是服务器的标准)。