# 動的ランタイム切り替え ## 定義 動的ランタイム切り替え(dynamic runtime switching)は、実行中のアプリケーションの状態を保持したまま、異なるランタイム間でワークロードを移行する技術である。CANDARW 2025 では、メモリ圧力が高まった際に、高性能だがメモリ消費の大きい WasmEdge から、メモリ効率の良い WAMR へ切り替えることで、Pod 退避(eviction)なしにリソース制約を緩和する。 ## 横断的知見 - **WasmEdge から WAMR への切り替えで Pod 退避を回避できる**: CANDARW 2025 の評価では、WasmEdge から WAMR への切り替えにより、ワーカーノードのメモリ使用量(RSS)が 80% 閾値を下回り、Pod 退避を回避できた。切り替え時に一時的な性能低下は発生するが、持続的なサービス中断を伴わない。(Source: [[@2025__CANDARW__Seamless Self-Healing in WebAssembly Container Orchestration with Runtime-Neutral Checkpointing]]) - **WAMR の fast interpreter 対応や JIT/AOT ランタイムへの拡張が性能トレードオフを改善する余地を残している**: CANDARW 2025 は、WAMR の classic interpreter を用いた場合に性能劣化が見られたが、fast interpreter への対応が今後の課題として挙げている。これは、メモリ効率と実行性能のトレードオフをさらに緩和する可能性を示唆する。(Source: [[@2025__CANDARW__Seamless Self-Healing in WebAssembly Container Orchestration with Runtime-Neutral Checkpointing]]) ## 未解決の問い - 切り替え判定に用いる閾値(メモリ使用率、性能指標)をどう設計すべきか。 - 切り替え時の一時的な性能低下をどこまで許容すべきか。 - 同一 Pod 内で複数の Wasm モジュールが動作する場合、部分的なランタイム切り替えは可能か。 - 切り替え後に元の高性能ランタイムへ戻すトリガーはどう設計すべきか。 ## 関連 - 概念: [[ランタイム中立チェックポイント]] / [[WebAssembly]] / [[コンテナオーケストレーション]] / [[ホットリスタート]] - エンティティ: [[WasmEdge]] / [[WAMR]] - ソース: [[@2025__CANDARW__Seamless Self-Healing in WebAssembly Container Orchestration with Runtime-Neutral Checkpointing]] - 関連 MOC: [[System Engineering - MOC]] / [[SRE - MOC]]