第30章: サーバー
サーバーは、プラネタリスケールコンピュータにおけるコンピュートの基本単位です。現代のサーバーは、コンパクトなフォームファクタに膨大な能力を詰め込んでいます:数十のCPUコア、数百ギガバイトのメモリ、テラバイト単位のストレージ、毎秒数百ギガビットのネットワークリンクです。サーバーアーキテクチャを理解することは、ワークロードのサイジングやパフォーマンス特性の理解にとって重要です。
データセンターのサーバーは、通常19インチの標準ラックにマウントされます。1つのラックには40台以上のサーバーが収容でき、ネットワークスイッチ、電力分配、ケーブル管理装置も含まれます。ラックの密度——コンピュート能力と消費電力の両面で——はデータセンター設計の主要な制約条件です。
サーバー選定では、多くの次元のバランスを取る必要があります:CPUコア数対クロック速度、メモリ容量対帯域幅、ストレージ容量対IOPS、ネットワーク帯域幅対レイテンシーです。ワークロードによってプロファイルは異なります:キャッシングサービスは大容量メモリと高速ネットワークが必要ですがストレージは少なくて済みます。ストレージサービスは大容量ディスクと耐久性のある書き込みが必要ですがCPUコア数は少なくて済みます。コンピュート集約型のサービスは多数の高速コアが必要です。
ヘテロジニアスコンピュートへのトレンド——CPUと並んでGPU、FPGA、カスタムアクセラレータを追加すること——は、サーバー選定にさらなる次元を加えます。機械学習のトレーニングのようなワークロードはGPUアクセラレーションから大きな恩恵を受け、暗号化処理は専用ハードウェアにオフロードできます。