SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Stack Overflow で SQL Server 運用を学ぶ際に見ておきたい情報 (Stack Overflow の SQL Server の歴史)

leave a comment

Stack Overflow (Stack Exchange Network) で使用されている構成については、Performance で公開されています。

image

SQL Server については、4 台のサーバーで構成されていることが公開されており、上記の情報では次のような構成となっているとされています。

  • Stack Overflow
    • RAM: 1.5 TB
    • DB Size: 2.8 TB
  • Stack Exchange / Careers / Meta
    • RAM: 768 GB
    • DB Size: 3.9 TB

このような環境で平均的な CPU の使用率が 10% 以下になっているということは有名な情報ではないでしょうか。

日本語時の情報としては Publickey のStack Overflowの裏側は、Webサーバ9台、SQL Serverが4台など。月間5億6000万PVをさばくシステムの状況を公開中 が有名かと。この記事は 7 年前のものとなるため、現状とはハードウェアのサイズが変わっていますが、基本的な構成は変えることなくサービスが提供されているかと思います。

構成についてはさらに詳細な情報が公開されており、次の記事から確認できるようになっています。

SQL Server については、Windows Server 2016 + SQL Server 2019 で構成されており、どのようなハードウェアを使用しているかについても公開されています。(SQL Server のハードウェアについては、以前の環境となっているようで、現状使用している 1.5 TB の環境ではなさそうですが参考になります)

 

先日開催された、EightKB 2022 August で、Stack Overflow で使用されている Always On 可用性グループの SQL Server の運用についてのセッションがありました。

動画が公開 されており、Stack Overflow で使用されている SQL Server の実際の環境や運用について興味深い内容が沢山紹介されていました。

本稿では、先日開催されたイベントのセッション内で公開された情報や、Stack Overflow の環境の歴史を学ぶためにはどのような情報を確認できるかをまとめておきたいと思います。

私も適宜情報を再確認している状態で、本投稿は頻繁に追記を行っていこうと考えています。

Stack Overflow の SQL Server の構成

Stack Overflow で使用されている SQL Server については、Always On 可用性グループによる Live / Hot Standby 構成であり、二つのデータセンターで構成されていることは以前から公開されていました。

EightKB 2022 August では、この Always On 可用性グループの実際の運用について興味深い内容が語られていたのですが、その中では構成についても説明がありました。

Stack Overflow では、次のような SQL Server の構成が取られているとのことです。

image

データセンターとしてはニューヨーク (NY) とコロラド(CO) を使用しており、ニューヨークをメインのサイトとして、コロラドをバックアップ用のデータセンターとして使用しているとのことです。

Stack Overflow としては、5 個の DB / Stack Exchange としては 388 個の DB を使用しており、これらを可用性グループで冗長化し、分散型可用性グループ (DAG) を使用して、レポート用のサーバーにデータの連携を行っているとのことです。各サーバーは WSFC のクラスターインスタンスではなく、シングルサーバーの SQL Server を使用しており、シンプルなハードウェア構成が取られています。

セッション内では Stack Overflow で使用されている OSS として公開されている Opserver の画面でも構成が紹介されています。

image

3 ノードの Always On 可用性グループを NY と CO で構成し、要件に応じて、同期 / 非同期を使い分けていることが確認できます。DB についてはも、5 / 388 と上述のデータベースが作成されていることが確認できますね。

読み取りのワークロードについては、読み取りセカンダリーを活用してサービスが提供されています。

 

EightKB 2022 August では、この環境の可用性グループを運用する際の興味深いノウハウについていくつも発表が行われており、可用性グループを運用する際に意識しておきたいことがいくつもありましたので、可用性グループを使いこなす際には一度見ておくとよいかと思います。

 

Stack Overflow の SQL Server の変遷

上述のとおり、Stack Overflow では、2022/8 時点では、Windows Server 2016 + SQL Server 2019 の組み合わせが使用されています。

Stack Overflow は当初は、1 台の Windows Server 2008 Standard Edition でサービスが提供されていたということは、Our Dedicated Server で公開されています。当時は SQL Server については、SQL Server 2005 が使用されていたのではないでしょうか。

この環境がサービスの成長に合わせ、冒頭で紹介した環境に構成が変わっていくのですが、この構成の変遷についても情報が公開されており、SQL Server のバージョンアップについては、インプレースアップグレードを実施したタイミングの作業については Youtube で公開されていたりと、かなりオープンに情報が公開されています。

次のような情報を確認することで、Stack Overflow で使用されていた SQL Server の歴史を見ることができるのではないでしょうか。(

SQL Server に関しての情報だけでも興味深い内容が多々あるので、こまめに本投稿をアップデートしようと思っています。

2008

2009

2010

2012

2013

2015

2016

2018

2019

2020

Written by Masayuki.Ozawa

8月 8th, 2022 at 9:47 am

Posted in Stack Overflow

Tagged with

Leave a Reply

Share via
Copy link
Powered by Social Snap