看StackOverflow如何用25台处事器撑起5.6亿的月PV(8)

如此低资源操作率的主要原因就是高效的代码。web server 的 CPU 平均操作率在5% 到 15% 之间,内存利用为 15.5 GB,网络传输在 20 Mb/s到 40 Mb/s。SQL 处事器的 CPU 利用率在5% 到 10% 之间,内存利用是 365GB,网络传输为 100 Mb/s到 200 Mb/s。这可以带来 3 个长处:给进级留下很大的空间;在严重错误产生时可以保持处事可用;在需要时可以快速回档。

学到的常识

1. 为什么利用 MS 产物的同时还利用 Redis?什么好用用什么,不要做无须要的系统之争,好比 C# 在 Windows 呆板上运行最好,我们利用 IIS;Redis 在*nix 呆板上可以获得充实发挥,我们利用*nix。

2. Overkill 即计策。泛泛的操作率并不能代表什么,当某些特定的工作产生时,好比备份、重建等完全可以将资源利用拉满。

3. 健壮的 SSD。所有数据库都成立在 SSD 之上,这样可以得到 0 延时。

4. 相识你的读写负载。

5. 高效的代码意味着更少的主机。只有新项目上线时才会因为非凡需求增加硬件,凡是环境下是添加内存,但在此之外,高效的代码就意味着 0 硬件添加。所以常常只接头两个问题:为存储增加新的 SSD;为新项目增加硬件。

6. 不关键怕定制化。SO 在 Tag 上利用巨大查询,因此专门开拓了所需的 Tag Engine。

7. 只做必需做的工作。之所以不需要测试是因为有一个活泼的社区支撑,好比,开拓者不消担忧呈现“Square Wheel”效应,假如开拓者可以建造一个更更轻量级的组件,那就替代吧。

8. 注重硬件常识,好比 IL。一些代码利用 IL 而不是C#。聚焦 SQL 查询打算。利用 web server 的内存转储毕竟做了些什么。摸索,好比为什么一个 split 会发生 2GB 的垃圾。

9. 切勿权要作风。总有一些新的东西是你需要的,好比,一个编辑器,新版本的 Visual Studio,低落晋升进程中的一切阻力。

10. 垃圾接纳驱动编程。SO 在淘汰垃圾接纳本钱上做了许多尽力,跳过雷同 TDD 的实践,制止抽象层,利用静态要领。固然极度,可是确实打造出很是高效的代码。

11. 高效代码的代价远远超出你想象,它可以让硬件跑的更快,低落资源利用,切记让代码更容易被措施员领略。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8291.html