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

每次新成果宣布都做单位测试、集成测试盒 UI 测试,这就意味着可以预知输入的产物成果测试后就会推送到孵化网站,即 meta.stackexchange(原 meta.stackoverflow)。

监督/日志

当下正在思量利用 做日志打点,今朝利用了一个专门的处事将 syslog UDP 传输到 SQL 数据库中。网页中为计时添加 header,这样就可以通过 HAProxy 来捕捉而且融合到 syslog 传输中。

Opserver 和 Realog 用于显示丈量功效。Realog 是一个日志展示系统,由 Kyle Brandt 和 Matt Jibson 利用 Go 成立。

日志通过 HAProxy 负载平衡器借助 syslog 完成,而不是 IIS,因为其成果比 IIS 更富厚。

关于云

照旧老生常谈,硬件永远比开拓者和有效率的代码自制。基于木桶效应,速度必定受限于某个短板,现有的云处事根基上都存在容量和机能限制。

假如从开始就利用云来建树 SO 说不定也会到达此刻的水准。但毫无疑问的是,假如到达同样的机能,利用云的本钱将远远高于自建数据中心。

机能至上

StackOverflow 是个重度的机能控,主页加载的时间永远节制在 50 毫秒内,当下的响应时间是 28 毫秒。

措施员热衷于低落页面加载时间以及提高用户体验。

每个独立的网络提交都予以计时和记录,这种计量可以弄清楚晋升机能需要修改的处所。

如此低资源操作率的主要原因就是高效的代码。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. 高效代码的代价远远超出你想象,它可以让硬件跑的更快,低落资源利用,切记让代码更容易被措施员领略。


Stack Overflow

问答社区网络 StackExchange 由 100 多个网站组成,个中包罗了 Alexa 排名第 54 的 StackOverflow。StackExchang 有 400 万用户,每月 5.6 亿 PV,但只用 25 台处事器,而且 CPU 负荷并不高。

它没有利用云计较,因为云计较大概会拖慢速度,更难优化和更难明除系统妨碍。

StackOverflow 仍然利用微软的架构,它很是实际,微软的基本设施能有效事情,又足够便宜,没有令人信服的来由需要做出改变。但这并不暗示它不利用 Linux,它将 Linux 用在有意义的处所。

它的 Windows 处事器运行的操纵系统版本是 Windows 2012 R2,Linux 处事器运行 Centos 6.4。

网站数据库 MS SQL 巨细 2TB,全都储存在 SSD 上,它有 11 台运行 IIS 的 Web 处事器,2 台运行 HAProxy 的负载平衡处事器,2 台运行 Redis 的缓存处事器。

看StackOverflow如何用25台办事器撑起5.6亿的月PV

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

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