はじめに
今回からは、2024年に公開された論文「Characterizing a Memory Allocator at Warehouse Scale」に基づいて、Googleが独自開発したLinuxのメモリ割り当てライブラリであるTCMallocの最適化に対する取り組みを紹介していきます。今回は、TCMallocのアーキテクチャーの概要を説明します。
Google独自のメモリ割り当てライブラリ
Linux上のアプリケーションプロセスが稼働中に必要なメモリを確保する際は、C言語であればmallocなど、各言語に標準のライブラリ関数を用います。これらのライブラリ関数は、mmapシステムコールを利用してLinuxカーネルから(ページと呼ばれる単位の)一定サイズのメモリを取得した後、これを分割して受け渡します。このようなメモリ割り当て処理は、データセンターで稼働する多数のアプリケーションが共通に利用するため、このライブラリ関数を最適化する事は、データセンター全体の最適化に貢献することになります。
そこで、Googleでは、mallocに代わる独自のメモリ割り当てライブラリであるTCMallocを開発・使用しており、そのソースコードは、オープンソースとしてGitHubのリポジトリで公開されています。TCMallocは、C言語、および、C++で使用できます。そして、冒頭の論文では、Googleのデータセンターで稼働する代表的なアプリケーションに対するTCMallocのプロファイリングデータと共に、Googleのデータセンターの特性に対応した最適化が紹介されています。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。

