Interstage Application Serverにおいて、運用開始前に「暖気運転」が必要なのはなぜですか?

運用開始前に「暖気運転」が必要なのはなぜですか?
Java実行環境(Java VM)の以下の特性から、暖気運転は安定稼働のために必要です。暖気運転(ならし、ウォームアップ)とは、アプリケーションを起動したあと、本番業務を開始する前に、本番業務と同様のデータを事前に流し、一通り動作させることを言います。
Java実行環境では、バイトコードと呼ばれる中間言語をプログラムコードとして実行しますが、その方法には、以下の2種類があります。

  • インタプリタによるバイトコードの実行 
    インタプリタは、バイトコードを1命令ずつ解釈して実行します。特別な事前準備は必要ありませんが、JITによりバイトコードを機械語に翻訳(コンパイル)して実行した場合と比較して実行性能は劣ります。


  • JIT(Just-In-Time Compiler)により、バイトコードを機械語に翻訳(コンパイル)して実行 
    メソッド単位のバイトコード群を、JITにより機械語へ翻訳したあとで実行します。翻訳処理に時間がかかりますが、実行性能は良くなります。


実際のJava実行環境では、これらの2つの実行方法を組み合わせています。すなわち、起動時はインタプリタで実行し、次第にJITによる翻訳コードで実行します。そして、メソッドの動的プロファイリング(どのメソッドが頻繁に実行されるかの計測)を行い、よく使用されるメソッドを中心にJITで翻訳し、あまり使われることのない不必要なメソッドまで翻訳することを避け、効率よくインタプリタとJITのバランスを取っています。
暖気運転は、本番業務と同様のデータを準備したうえで走行させ、同じ実行アプリケーションパスを通るようにして、本番業務開始時までに最適な翻訳コードを生成しておくことで、実行性能/効率を上げるためのものです。

関連FAQ:
FAQ11896 「Interstage Application Serverにおいて、Javaアプリケーション起動直後の性能が良くないのはなぜですか?

製品・サービス区分 Interstage
製品・サービス情報
対象製品 Interstage Application Server
バージョン V9, V8, V7, V6, V5
プラットフォーム Windows, Solaris, Linux
アンサー種別 技術サポート
このページの先頭へ