Skip to content

科学解决问题的思路 - 木桶理论

涉及到计算机的地方,经常会提到一个词 -- 木桶理论(效应),意思很简单,就是说一个木桶能装多少水,取决于组成这个木桶的最短的那块木板。

想要让木桶装更多的水,最有效的办法就是找到最短的那块木板,然后加长它!

在计算机里,木桶理论几乎无处不在。在一个复杂的系统中,最终的系统实现效果往往取决于系统中最薄弱的环节,也就是瓶颈所在。因此提升整个系统效果的关键,就是找到这个最薄弱的环节,然后改善它!而不是盲目的在其它不构成瓶颈的环节下功夫。

举两个很常见的例子:

  • 很多人发现自己的宽带测速达不到套餐的标称值,测速的时候发现很慢。
  • 电脑和 NAS 都用了万兆网卡,而且 NAS 也组了阵列,但是万兆 NAS 传输达不到预期速度

那么该如何使用 木桶理论 来解决问题呢?

理清环节

想要科学的解决问题,最重要的是理清影响系统效果有哪些因素。

以上面提到的测速为例,影响最终测速结果可能有下面这些因素:

  • 运营商宽带虚标(当然如果是移动、电信、联通这些大的运营商,基本不会虚标)
  • 光猫本身的性能不够(如果是比较新的光猫,应该不会有这个问题)
  • 光猫网口是百兆(如果是千兆宽带,并且使用电脑有线直连光猫测试)
  • 光猫 WiFi 性能不够(如果是千兆宽带,用无线终端直连光猫 WiFi 测试的话)
  • WiFi 信号较弱(可能有承重墙遮挡,或者受到干扰比较严重)
  • 测试用的无线终端自带的 WiFi 芯片比较老,只能使用 2.4G 频段的 WiFi

以上面提到的万兆 NAS 传输速度为例,影响传输速度可能有下面这些因素:

  • 硬盘读写速度不够
  • 网口传输速度不够
  • 网线速度不够
  • 共享协议设置问题
  • 软硬件兼容性问题

找出瓶颈

理清可能存在瓶颈的环节只是第一步,接下来就按照 最容易排除问题 或者 最有可能发生问题 为优先级顺序,针对每个环节来想办法单独测试,逐步确定瓶颈究竟在哪个环节。

最容易排除问题

以上面提到的测速为例,因为无线连接受到的影响因素太多,所以尽量使用有线来测试网速,这样就可以直接排除掉很多环节。如果有线还是测速慢,那就检查电脑有线网卡的连接速度、光猫的网口是否是百兆、网线是否只能跑到百兆。

具体可以参考:网络速度测试

最有可能发生问题

以上面提到的万兆 NAS 传输速度为例,瓶颈最有可能出在读写速度不够上面,比如从电脑的 SSD 上传输数据到 NAS 的阵列里。要达到万兆(换算成文件读写大概是 1.2GB/s),电脑如果是 SATA SSD 读取速度最快也就 500MB/s 左右,显然就会成为瓶颈。

具体可以参考:阵列读写性能测试