LinuxコンピューターとDockerサービスの負荷なしの電力消費(コンテナーの負荷なし)
仮想化には多くの利点があります-特にプロセスの分離とリソースの制御に。 完全で構成されたシステムのイメージのおかげで、プログラムの展開がこれまで以上に簡単になりました。 仮想マシンのハイパーバイザーの作業は、オペレーティングシステムの2つのコアの同時操作を意味していました。 そのため、仮想マシンに代わる軽量の代替手段が登場しました。これは、仮想化の最適な方法として、仮想マシンを急速に混雑させているコンテナです。
オペレーティングシステムの2つのカーネルは、仮想マシンのようにコンテナで同時に動作しないため、エネルギー消費は通常のオペレーティングシステムを使用する場合と同じであるように思われます。 しかし、これはそうではありません。 LinuxとDockerの比較テストでは、Dockerコンテナーの消費電力がわずかに高いことが示されました。
アルバータ大学(カナダ)のコンピューターサイエンス学部の専門家は、同じタスクについて、サーバーの電力消費量を標準のDockerコンテナーおよびLinuxサーバーと比較しました。 テストサーバーでタスクを実行し、測定結果を記録するために、同じハードウェア構成の別のマシン(テストランナー)Dell PowerEdge R710を使用しました。
Dell PowerEdge R710テストサーバーのハードウェア構成:
- プロセッサー:2.93 GHzでクロックされる2つの6コアIntel Xeon X5670
- RAM:72 GB ECC DDR3
- ネットワーク:ギガビットイーサネット
- ドライブ:15,000 rpmで146 GB SASハードドライブ
- 電源:870 W(120 V、60 Hzで12 A)
テストサーバーのソフトウェアバージョン:
ソフトウェア | バージョン | Dockerイメージ |
---|---|---|
配布 | Ubuntu Server 16.04.1 LTS | |
コア | Linux 4.4.0 | |
Docker | 1.12.1 | |
アパッチ | 2.4.10 | php:5.6-apache |
Php | 5.6.24 | php:5.6-apache |
MySQL | 5.7.15 | mysql:5.7.15 |
ワードプレス | 4.6.0 | ワードプレス:4.6-apache |
レディス | 3.2.3 | redis:3.2.3 |
PostgreSQL | 9.5.4 | postgres:9.5.4 |
エネルギー消費は、電力計で測定されました。 これは最も客観的なテストです。これは、システムの総消費量、つまりプロセッサ、メモリ、ネットワーク、さらには電源のオーバーヘッドを測定するためです。 パワーメーターは、1秒ごとの平均値(RMS)を提供します。 実践が示しているように 、そのような精度は正しい測定には十分です。 データはyyongpilのwattsupの修正バージョンによって記録されました。
まず、LinuxコンピューターとDockerサービスの電力消費量を、負荷なし(コンテナーの負荷なし)の「ベース」レベルとして測定しました。 各テスト中、サーバーは10分間負荷なしで動作し、テストは40回繰り返されました。 結果は記事の最初の図に示されています。 消費電力の増加は、dockerdバックグラウンドプロセスが原因です。 Goプログラミング言語で記述されたこのサーバーは、実行中のコンテナーが1つもない場合でも、定期的に起動します。 この調査では、Goでガベージコレクションとスケジューリング(runtime.findrunnable、runtime.scanobject、runtime.heapBitsForObject、runtime.greyobject)のためにさまざまな関数を呼び出すことが示されました。
次に、研究者はLinuxおよびコンテナ内で3つのRedis、WordPress、およびPostgreSQLタスクを順次起動し、さまざまな統計的方法を使用して結果を処理しました。 グラフ形式では、結果はバイオリンプロットと密度マップとして最も明確に表示されます。 ト音記号は、指標の統計的分布をよく示しています。 たとえば、これはLinuxとDockerのグラフが負荷なしでどのように見えるかです。
そして、これがWordPressでのテストのバイオリンチャートです。
また、彼の密度マップは、時間の経過に伴う負荷とエネルギー消費の分布も示しています。
ご覧のとおり、WordPressタスクの場合、エネルギー消費量の差も大きくなっています。 このテストでは、WP Example Content Plugin 1.3を使用してブログを生成し、Tsng 1.6.0を使用してブログのHTTP負荷をシミュレートしました。
PostgreSQLの負荷では、消費電力の違いはそれほど顕著ではありませんが、Redisの場合、Dockerコンテナではテストの実行に時間がかかったため、状況は悪化しています。
Redisのト音記号。
密度マップは彼のためです。
すべてのテストの作業には合計2日20時間かかりましたが、研究者は包括的かつ客観的な統計を収集することができました。 タスクを実行せずに単にdockerdバックグラウンドプロセスを開始すると、消費電力が2ワット増加することがわかりました。 さらに、RedisとWordPressの場合、エネルギー消費の増加は主に生産性の低下によるものです。 作業はコンテナ内で実行されるため、完了するのに時間がかかり、全体的なエネルギー消費が増加します。
研究者は、コンテナを使用する場合、エネルギー消費の増加を考慮する必要があることを強調しています。 ただし、サーバーへの通常のソフトウェアのインストールと比較して、コンテナーの保守とサポートに多くの節約があることを覚えておく必要があります。 利便性と時間の節約の利点は、特にこれらの損失はそれほど壊滅的ではないが、最小であると言えるため、エネルギー消費の損失を大きく上回ることがあります。
科学研究は、2017年5月2日にプレプリントサイトarXiv.org(arXiv:1705.01176)で公開されました。