スラッシング 【thrashing】
概要
スラッシング(thrashing)とは、コンピュータが搭載するメインメモリの容量に対して実行中のプログラムが使おうとするメモリ容量が過大なため、メモリとストレージとの間で内容の入れ替え(ページング/スワッピング)が頻繁に起き、処理がなかなか進まない状態のこと。動作が極端に遅くなり、外部からの入出力や操作もほとんど受け付けられない状態に陥る。現代の一般的なOSでは、物理的なメモリ容量を超えるメモリ領域を扱えるようにするため、ストレージ(外部記憶装置)上に専用の領域を設け、現在使っていないメモリ領域の内容を書き出してメモリ容量を大きく見せる「仮想メモリ」(virtual memory)技術を搭載している。
ストレージ上に退避した内容が必要になると、メモリ上で最近使われていない領域を退避して場所を空け、必要な内容を読み込んでアクセスする。このとき、プログラムが物理メモリの容量に対して極端に大きな領域を確保して作業しようとすると、書き出した内容がすぐまた必要になって読み込まれ、しかし空き領域が逼迫しているためまたすぐ書き出され…という入れ替え動作が極端に頻繁に行われるようになる。この状態をスラッシングという。
以前は身近な性能劣化問題としてよく取り上げられたが、近年ではコンピュータのメインメモリの大容量化やSSDなどストレージの高速化、OSの仮想メモリ管理の効率化などによりあまり発生しなくなってきている。しかし根本的に状況が変化したわけではなく、メモリ搭載容量の少ない機種で大容量のメモリを必要とするソフトウェアを動作させれば依然としてスラッシングは起こり得る。
(2018.9.26更新)