分享支撑StackOverflow运营的网站硬件配置
2021-01-05 09:56:22 阅读(190) 评论(0)
问答社区网络Stackexchange由Alexa排名第54的Stackoverflow100多个网站组成。StackExchang拥有每月5.6亿PV的400万用户,但只有25台服务器,CPU负荷不高。它不使用云计算,因为云计算可能会减速,更难优化和消除系统故障。Stackoverflow仍然使用微软架构,这是非常实用的。微软的基础设施可以有效地工作,而且足够便宜,没有令人信服的理由需要改变。但这并不意味着它不使用Linux,它在有意义的地方使用Linux。Windows服务器运行的操作系统版本为Windows2012R2,Linux服务器运行Centos6.4。网站数据库MSSQL大小为2TB,全部存储在SSD上。它拥有11台运行IIS的Web服务器,2台运行HAProxy的负载平衡服务器,2台运行Redis的缓存服务器。Stackoverflow是一个IT技术问答网站,用户可以在网站上提交和回答问题。目前Stackoverflow拥有400万用户,4000万答案,月PV5.6亿,世界排名第54。然而,值得注意的是,只有25台服务器支持他们的网站,并保持非常低的资源利用率,这是一场高效率、负载平衡、缓存、数据库、搜索和高效代码的竞争。最近,Highscalability创始人Todhoff根据Marcocecconi的演讲视频“ThearchitectureofStackOverflow以及NickCraver的博文“WhatittakestorunStackOverflow总结了Stackoverflow成功的原因。出乎意料的是,Stackoverflow仍然严重使用微软产品。他们认为,由于微软的基础设施可以满足需求,而且足够便宜,因此没有理由做出根本性的改变。在需要的地方,他们也使用Linux。一切都是为了性能。另一个值得注意的是,Stackoverflow仍然使用纵向扩展策略,而不使用云。他们使用384GB内存和2TBSSD来支持SQLServers,如果使用AWS,成本可想而知。另一个不使用云的原因是Stackoverflow认为云会在一定程度上降低性能,同时也会增加优化和调查系统问题的难度。此外,它们的结构不需要横向扩展。高峰期是一个横向扩展的杀手级应用场景,但他们有丰富的系统调整经验。该公司仍然坚持Jeffatwood的名言——硬件总是比程序员便宜。Marcoceccon曾提到,在谈到系统时,有一件事必须首先理解——需要解决的问题类型。首先,从简单的角度来看,Stackexchange是用来做什么的——首先是一些主题,然后围绕这些主题建立一个社区,最后形成这个令人钦佩的问答网站。二是规模相关。Stackexchange正在快速增长,需要处理大量的数据传输,所以这些是如何完成的,特别是只使用25台服务器,以下是:状态Stackexchange有110个网站,以每月3到4个的速度增长。400万用户800万问题4000万答案世界排名54位,每年增长100%,月PV5.6亿。大多数工作日的峰值是每秒2600到3000。作为编程相关网站,一般工作日的要求会高于周末25台服务器SSD中存储2TB的SQL数据。每个webserver配备2个320GSSD。使用RAID1的每个ElasticSearch主机都配备了300GB的机械硬盘,SSDStackoverflow的读写比为40:60DBServer的平均CPU利用率为10个webserver,IIS2负载均衡器,1活跃,HAProxy4活跃数据库节点,实现tagengine的应用程序服务器采用MSSQL3,所有搜索都通过tag3服务器通过elasticsearch搜索2服务器支持分布式缓存和消息2Networks(Nexus5596 FabricExtenders)2cisco5525-xasas2cisco3945routers主要服务于stackexchangeapi的两个只读SQLServersVM,用于部署、域控制器、监控、运维数据库等场合。——Fast.NETJSONSerializer,基于Sigil的Daper-微型ORMUIUI有一个信息收件箱,用于新徽章获取、用户发送信息、重大事件发生时的信息收集,并由WebSockets支持。通过Elasticsearch实现搜索箱,使用REST接口。搜索箱通过Elasticsearch实现,并使用REST接口。由于用户提出问题的频率很高,很难显示最新的问题,每秒都会出现新的问题。因此,有必要开发一种*用户行为模式的算法,只向用户展示他们感兴趣的问题。它使用了基于Tag的复杂查询,这就是为什么要开发独立的Tagengine。用于生成页面的服务器端模板。服务器25台服务器未满载,CPU利用率不高,SO单独计算(StackOverflow)只需要5台服务器。除执行备份时,数据库服务器资源利用率约为10%。为什么这么低?因为数据库服务器有384GB内存,webserver的CPU利用率只有10%-15%。纵向扩张还没有遇到瓶颈。在正常情况下,使用这种流量横向扩展大约需要100到300台服务器。简单的系统。基于.Net,只有9个项目,其他系统可能需要100个。之所以使用这么少的系统,是为了追求极限的编译速度,需要从系统开始时进行规划,每台服务器的编译时间约为10秒。与流量相比,11万行代码非常少。使用这种极简主要是基于几个原因。首先,不需要太多的测试,因为Meta.stackoverflow本来就是一个与bug讨论社区的问题。其次,Meta.stackoverflow也是软件测试网站,如果用户发现问题,往往会提出并给出解决方案。纽约数据中心采用Windows2012,已升级为2012R2(Oregon已升级),Linux系统采用Centos6.4。SSD默认使用Intel330(Web层等)Intel520进行中间层写入。例如,ElasticSearch数据层使用Intel710和S3700系统,RAID1和RAID10(任何4 RAID10用于上述磁盘。即使在生产环境中使用了几千元2.5英寸的SSD,也不怕失败。每个模型使用一个以上的备件,不考虑多个磁盘故障的情况。Elasticsearch在SSD上表现出色,因为SOwrites//re-indexes操作非常频繁。SSD改变了搜索的使用方式。因为锁的问题,Luncene.Net不能支持SO的并发负载,所以他们转向ElasticSearch。在全SSD环境下,不需要围绕BinaryReader设置锁。异地备份-主数据中心位于纽约,备份数据中心位于Oregon。Redis有两个节点,SQL有两个备份,Tagengine有三个节点,elastic有三个节点,一切都是冗余的,同时存在于两个数据中心。Nginx用于SSL,在SSL终止时转换HAProxy。并非主从所有。一些临时数据只会放在缓存中。所有HTTP流量发送仅占总流量的77%。Oregon数据中心的备份和其他VPN流量也存在。SQL和Redis备份主要产生这些流量。数据库MSSQLServerStackexchange为每个网站设置了数据库,所以Stackoverflow和Serverfault等等。在纽约的主数据中心,每个集群通常使用一个主和一个阅读备份配置,并在Oregon数据中心设置备份。如果Oregon集群运行,纽约数据中心的两个备份将只读取和同步。为其他内容准备的数据库。这里还有一个存储登录凭证和聚合数据的“网络范围”数据库(大部分是stackexchangege).com用户文件或API)。CareersStackOverflow、stackexchange.com和Area51都有自己独立的数据库模式。模式的变化需要同时提供给所有网站的数据库。它们需要向下兼容。例如,如果您需要重新命名一个列,它将非常麻烦。这里需要多个操作:添加一个新列,添加两个列上的代码,为新列写数据,更改代码,使新列有效并删除旧列。不需要分片,一切都是通过索引解决的,数据体积也没那么大。如果有filteredindexes的需求,为什么不更有效呢?常见的模式只在DeletionDate=null上做索引,而其他则是指定类型的枚举。每个votes都设置了一个表,比如一个表给postvotes,一个表给commentvotes。大部分页面都可以实时渲染,只是为了匿名用户缓存,所以没有缓存更新,只有重新查询。Scores是非标准化的,所以需要经常查询。它只包括IDS和dates,postvotes表目前约有56454478行,使用索引,大部分查询都可以在几毫秒内完成。Tagengine完全独立,这意味着核心功能不依赖任何外部应用程序。它是一种巨大的内存结构数组结构,专门用于SO用例优化和重负载组合预计算。Tagengine是一种简单的windows服务,在多个主机上运行冗余。CPU利用率基本保持在2-5%,三台主机专门用于冗余,不负责任何负载。如果所有主机同时出现故障,网络服务器将Tagengine加载到内存中并继续运行。与传统ORM相比,Dapper无编译器校验查询。使用编译器有很多好处,但在运行过程中仍然存在fundamentaldisconect问题。同时,更重要的是,由于生成nastySQL,通常需要找到原始代码,而QueryHint和parameterization控制等能力的缺乏使得查询优化更加复杂。编码过程中的大多数程序员都是远程工作。他们选择编码地点进行快速编译,然后运行少量测试。一旦编译成功,代码将转移到开发、交付和准备服务器,通过功能开关将新功能隐藏在同一硬件上作为其他站点进行测试,然后转移到Meta.每天都有成千上万的程序员在使用stackoverflow测试,一个很好的测试环境如果通过就会上线,静态类和方法被广泛应用于更广泛的社区进行测试。为了更简单、更好的性能编码过程非常简单,因为复杂的部分被包装到库中,这些库被开源和维护。.由于使用了一些社区共享代码,Net项目的数量非常低。.由于使用了一些社区共享的代码,Net项目的数量非常少。开发人员同时使用2-3个显示器,多个屏幕可显著提高生产效率。在浏览器、CDN和代理服务器中缓存所有5级缓存1级是网络级缓存。2级由.Htttpruntimenet框架.在每个服务器的内存中,Cache完成。三级Redis,分布式内存键存储,在多个支持同一站点的服务器上共享缓存项。四级SQLServercache,整个数据库,所有数据都放在内存中。5级SSD。通常只有在SQLServer预热后才生效。例如,每个帮助页面都有缓存,访问一个页面的代码非常简单:使用静态方法和类。从OOP的角度来看,它确实很糟糕,但它非常快,有利于简化编码。缓存由Redis和Dapper支持。为了解决垃圾收集问题,模板中的一类只使用一个副本,并在缓存中建立和保存。包括GC操在内的一切监控。据统计,当间接层增加GC压力达到一定程度时,性能会显著降低。CDNHit。鉴于查询字符串是基于文件内容的哈希,只有在新建立时才会再次取出。每天3000万到5000万Hit,带宽约为300GB到600GB。CDN不是用来处理CPU或I/O负载的,而是帮助用户更快地获得答案,每天部署5次,而不是建立太多的应用程序。主要原因是直接监控性能可以尽可能最小化。关键产品建立后,可以通过强大的脚本复制到每个网页层。每个服务器的步骤是:通过
推荐阅读
- 电商小白来报到!手把手教你电商怎样做
电商政策的各种改革,在一定程度上给电商行业带来了意想不到的便利。很多想要入行的人都在问,电商小白可以做电商吗?电商怎样做呢?其实入行电商并不难,创业初期却无从下手。接下来小万就来和大家解析电商小白常有的几个疑问:什么是电商?电商怎样做?希望…查看详情
- 电脑摄像头监控软件有哪些?电脑摄像头监控软件哪个好用
随着技术不断的发展和时代的偏见,现在电脑摄像头监控软件不仅类型多,也存在一定的差异性,在选择的时候大家要注意全方位的考虑,同时也要对于各种监控软件了解清楚,做好判断,那么电脑摄像头监控软件都有哪些呢?下面为大家介绍几种实用性较强…查看详情
- 小说阅读器该选择哪个好?
除了一些游戏、音乐、聊天app之外,小说app几乎成为了人们手机上的必备软件,不论是在车上、床上、家里,随时随地拿出手机打开小说app即可看最新最热门的小说。那么小说阅读器选哪个好呢?一、掌阅iReader掌阅iReader,无广告全免费的…查看详情
- 走路就能赚钱的软件,爱锻炼的人一定要下载
现在是一个发达的社会,很多东西在网上也是可以赚到钱的,也就是说足不出户就能赚钱,包括最近比较火的走路赚钱,很多人都听说过那么走路赚钱的软件排行榜都有什么呢,要选择靠谱的软件。 1、步多多 是一款提倡健步运动、环保生活、提升大…查看详情
- 永久免费不收费的软件app(2023年永久免费的app排行榜)
相信大家手机上都有各种的免费好用的app,这些app基本上都是免费的,而且这些app在平时的生活工作中都是扮演者重要的角色,下面小编就给大家来详细介绍一下永久免费不收费的软件app(2023年永久免费的app排行榜)这一块的内容,不知道…查看详情
- 抠图软件哪个好,如何进行选择及使用
所谓抠图软件,就是指通过在选定照片上选取某一部分图像进行截取下来,然后再对该部分图片进行剪辑操作的软件。现如今,市面上已经广泛流传了许多的抠图软件(包括PC端和手机端),这极大地方便了我们的工作和生活。有越来越多的人开始接触并学习去使用抠图…查看详情
- 免费的动态头像制作软件有哪些 动态头像制作软件排行榜
现在大家平时都喜欢制作一些动态的头像,其实市面上也是有很多的动态头像制作软件,下面*就给大家来详细介绍一下免费的动态头像制作软件有哪些 动态头像制作软件排行榜这一块的内容,希望能帮助到大家、 免费的动态头像制作软件有哪些 1.Q…查看详情
- 微信小程序申请详细流程
微信小程序如何申请啊? 1.申请小程序:300元(如果有已经认证过的公众号就可以免费申请)2.小程序开发:一般1000到几万不等、看具体要求。其实小程序开发价格主要取决于你要做多少页面和要做的页面和功能的复杂程度。如果是行业内比较成熟…查看详情
- 翻译软件哪个好 2022好用免费的翻译软件
现在市面上的翻译软件层出不穷,但是好用的而且免费的软件就那么几款,下面万商云集小编就带大家来了解一下2022好用免费的翻译软件。希望能帮助到大家。 一、谷歌翻译 谷歌翻译作为入门级别的翻译软件,基本上家喻户晓。谷歌浏览器有全网页翻译…查看详情
- 游戏爱好者一定要知道的机械键盘排行榜单
键盘的种类有很多,对于一些玩游戏的人来说,他们更喜欢使用机械键盘,因为机械键盘框从声响上面听着就让人特别的舒服,在按键的时候也更加的舒服,所以很多人都会选择机械键盘,那么机械键盘排行榜都有哪些呢? 1、罗技(Logitech…查看详情
- word怎么更新目录 word更新目录的方法
我们平时用Word写文档、说明书或毕业论文时,往往需要在文档前面加上目录,方便他人查看。你还在手动输入Word目录吗?下面10秒钟教你一键生成目录,还能自动更新。下面*就给大家来详细介绍一下word怎么更新目录word更新目录的方法这一…查看详情
- 美术作品登记著作权流程是怎样的?
依据著作权法的规定,作品的创作人不需要登记也可以取得著作权,著作权是从作品创作的时候就取得的,如果登记著作权的,可以向国务院著作权行政管理部门申请,美术作品登记著作权流程是怎样的?让我们来看看具体的流程!图片来源于网络(一)申请主体:根据《…查看详情
- 什么叫代运营?有人说它是坑,有人却说好处很多
现在电商越来越难做,很多商家都想知道管理好网店,提高店铺转化率、引流,于是就出现了代运营。那么究竟什么叫代运营呢?下文为你介绍。图片来源于网络 什么叫代运营?代运营主要是指帮助一些希望做电商的传统企业开展网上销售,这就需要该代运营公司具备网…查看详情
- 随著作权不断被重视,怎样申请著作权成了大家都*的问题
随着互联网的飞速发展,越来越多的事物出现侵权现象,在著作人完成著作之后,会人容易被他人运营到获取利益上。现在平均每年都会出现大大小小数百件著作侵权的现象,所以很多人都会选择直接申请著作权。下面就来讲解怎样申请著作权。图片来源于网络 怎样申请…查看详情
- 如何管理自己的时间?这里有3款超好用的时间管理软件!
对于一些公司的老板来说,他们每天都有自己的行程安排,行程安排一般都是由助理去安排的,如果助理想要快速的安排老板每天的行程的话,就需要了解一下时间管理软件有什么? 1、今目标app 这是来源于完全免费互联网工作网站的官方网发布…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
邮箱:zjb@iwanshang.com
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的AI增效平台

400-0033-166
8:30-18:00















































注册有好礼



