ページの先頭です


ページ内移動用のリンクです

実習課題項目サンプル(2)

IIJアカデミーの実習は、受講者個別のカリキュラムを策定しています。本ページはその実習例となります。

「ロードアベレージの意味と計算方法を調べて実装する」

課題コンセプト

クラウドを構成するサーバでは、LinuxをはじめとしたUNIX系オペレーティングシステムを用いることが殆どであり、そのサーバ上では、必要な機能を提供する複数のソフトウェア(プロセス)を同時実行している。
このサーバが実際にサービスを提供する際に、レスポンスが悪くなることを、「動作が重い」「負荷が高い」と表現することがある。この負荷の高さを数値化したものがロードアベレージであるが、この数値の意味するところは意外と理解されていない。
また、プロセスにはどのような種類の状態が存在するのか、それら各々の違いはなにか、そして特に「待ち状態」になるのはどのような場合か、などについても案外と曖昧なままである。
ロードアベレージが高くなる原因は、計算処理だけでなく、プロセス数の過多、ディスクへのアクセスやネットワーク通信など複合的なもので、その切り分けが性能改善、安定運用、コスト最適化には重要になる。

本項目では、実際にロードアベレージを求めるプログラムを作成することで、ロードアベレージの数値の意味するところを理解する。さらにその実装の過程において、オペレーティングシステム上でのプロセスの生成のされ方、消滅の仕方、カーネルのコンテキストスイッチの仕組みを理解し、プロセスの状態というものを理解する。
このように理解を深めることで、オペレーティングシステムの動きと運用での必須知識を実践的に習得する。

課題の説明

目的 Linux オペレーティングシステムが出力するロードアベレージについて、その意味と計算方法を調べ、そして自ら実装する。
提供機材 データセンターのネットワークに設置されたサーバ
前提 特になし
課題
  • ロードアベレージを出力するコマンドにはどのようなものがあるかを調べ、レポートする。
  • 上記コマンドの出力の意味を調べ、レポートする。
  • 自ら実装する。
  • 時系列変化をみることが必要な局面が多いので、一定時間ごとに継続的に動作するようなオプションも考慮する。

ページの終わりです

ページの先頭へ戻る