見出し画像

ジョブスケジューラとは何か?なぜ導入したほうがいいか

複数のユーザがサーバを使うとき、ジョブスケジューラを導入すれば、全体のスループットを高めることができます。ジョブスケジューラは、「ジョブ管理システム」、「ワークロードマネージャー」など様々な呼ばれ方をされていますが、どのように業務を効率化させるか、基本的なところを説明したいと思います。

ジョブとキューとは何か?

ジョブとは、サーバで計算を行うときに、どのソフトウェアライセンスとインプットデータを使い、どのように計算を流したいか、を記述したコマンド(ジョブスクリプト)の事を言います。

ユーザはそれぞれジョブを作り、ひとつのキュー(列)に登録します(ジョブ投入)。これは、空港で航空会社のチェックインカウンターの列に並ぶのに似ています。計算リソースが空き次第、ジョブは空いたサーバで自動的に実行されます(ジョブ実行)。

ジョブスケジューラの概念図

ジョブスケジューラの利点

ジョブスケジューラを導入することで、様々な利点があります。

まず、ユーザはどのマシンでジョブを実行するか意識しなくても、自分が行いたい計算の内容を記述しジョブ投入すれば、スケジューラが空いている計算リソースを見つけて実行してくれます。どのサーバが空いているか、自分で確認して回る必要はなくなり、サーバの負荷分散も可能となります。

また、ユーザがその場にいなくてもジョブは順次自動で実行されます。たとえば、金曜日の夕方までに複数のジョブを投入しておけば、月曜日の朝に結果を得られます。睡眠時間を削って夜中まで起きて、他の計算が終わったタイミングを見計らって、ジョブ実行させるようなことは必要なくなります。

優先順位や予め決めたポリシーに従って、柔軟な運用が可能となります。他のジョブ実行を止めてでも、早急に流したい計算があればそれを実行することができます(プリエンプション)また、キューの中でジョブを追い越したり、計算リソースを予約したり、予めユーザグループごとに計算リソースを割当てることが可能になります。

まとめ

このように、ジョブスケジューラがあれば、ユーザの使い勝手がよくなります。計算リソースをひとまとまりとして扱い、自分のジョブを投入すれば、自動で計算リソースを割当てて実行してくれます。IT管理者はポリシーを決めておくことで、その内容に応じて柔軟に計算リソースを配分することができます。また結果として、システム全体のスループットを向上し、より効率的な製品開発が可能となります。

使うソフトもハードウェアも同じであっても、ジョブスケジューラを導入するだけで、およそ数十パーセントも仕事の効率を上げることができるはずです。ジョブスケジューラの価格とその効果を比較すれば、レバレッジの効いた投資と言えるでしょう。



この記事が気に入ったらサポートをしてみませんか?