# スラッシング ## 定義 スラッシングとは、主記憶に対するメモリの過剰コミットメント(あまりに多くのプロセスのワーキングセットが同時に主記憶を占有しようとする状態)によって、各プロセスが互いのページを追い出し合い、ページフォールトが連鎖的に増大する性能劣化現象である。多数のプログラムがページ待ち状態(page-wait)で滞留し、主記憶と補助記憶を結ぶチャネルに輻輳が生じ、サービス品質が著しく低下する。この語は Denning が1968年の論文でワーキングセットモデルの文脈において導入した。(Source: [[@1968__CACM__The Working Set Model for Program Behavior]] §6) 論文はまた、FIFO(先入れ先出し)ページ置換方式について、コア需要が過大なマルチプログラム環境下で類似の「自己増強的な危機」——1巡が速く完了しすぎて、まだ必要なページまで削除され、それが更なるページフォールトの連鎖を招く現象——が生じうると指摘しており、これはスラッシングの一形態として位置づけられる。(Source: [[@1968__CACM__The Working Set Model for Program Behavior]] §2) 対策としてワーキングセットモデルは、プロセスを実行する前にそのワーキングセット全体を格納できるだけの空きページがあることを保証する「メモリアロケーション」の原則と、システム全体のプロセッサ需要・メモリ需要を均衡させる「バランスポリシー」を提示する。均衡が崩れた場合はまずメモリバランスの回復を優先すべきだとされる——メモリの過剰コミットメントに対する感度が、プロセッサのそれより大きいためである。(Source: [[@1968__CACM__The Working Set Model for Program Behavior]] §4, §6) ## 横断的知見 (このセクションは複数ソースの突き合わせで得られる知見を蓄積する。現時点では本概念に触れたソースが1件のため、蓄積を今後の ingest に委ねる。) ## 未解決の問い - 現代のLinuxのOOMキラーやcgroupのメモリ制限([[Linuxメモリ回収]] 参照)は、Denningのバランスポリシー(メモリ需要優先での均衡回復)とどう異なる、あるいは類似した設計判断を下しているか。 - コンテナオーケストレーション環境でのメモリオーバーコミット([[仮想メモリとページング]] の未解決の問い)は、ホスト全体でスラッシングに類する性能崩壊を引き起こす閾値をどう検知・防止しているか。 - SSD/NVMeなど traverse time T が大幅に短縮された現代のスワップデバイスでは、スラッシングの発生条件(メモリ過剰コミットメントの許容度)はどう変化するか。 ## 関連 - [[@1968__CACM__The Working Set Model for Program Behavior]] — 「スラッシング」という用語の初出。 - [[ワーキングセットモデル]] — スラッシングを防ぐために提案された対策の枠組み。 - [[仮想メモリとページング]] — スラッシングが発生する土台となる、デマンドページングとオーバーコミットの一般論。 - [[Peter J. Denning]] — 本用語の提案者。 ## 出典 - [[@1968__CACM__The Working Set Model for Program Behavior]]