「ストップ・ザ・ワールド」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
16行目: 16行目:
 
とくに[[冗長構成]]を完璧に組んだ[[サーバー]]群では数十秒の停止でも[[フェイルオーバークラスター]]が発動したりと一大事に発展することも多い。
 
とくに[[冗長構成]]を完璧に組んだ[[サーバー]]群では数十秒の停止でも[[フェイルオーバークラスター]]が発動したりと一大事に発展することも多い。
  
[[Java]]で書かれた[[プログラム]]を、[[メモリ]]をモリモリ積んだ[[サーバー]]で動かすと、[[メモリ]]を食い尽くすまで長い時間がかかるため、忘れた頃に一気に[[ガベージコレクション]]しようとして長時間のストップ・ザ・ワールドが発生するケースが多い。
+
[[ハードディスク]][[デフラグ]]の時間が大容量なほど長時間になるのと同様に、ガーベジコレクションによるストップ・ザ・ワールドの停止時間も基本的に[[メモリ]]の搭載量に比例する。
  
[[ハードディスク]][[デフラグ]]の時間が大容量なほど長時間になるのと同様に、ストップ・ザ・ワールドの停止時間も基本的に[[メモリ]]の搭載量に比例するため、[[ITドカタ]]に配給されるショボい[[スペック]]の[[PC]]、いわゆる[[社畜PC]]での開発時点ではメモリ不足により頻繁かつ小規模なガベージコレクションが行われるため発覚しないことが多い。
+
一般的に[[Java]]で書かれた[[プログラム]]を動かすサーバーはアホみたいに[[メモリ]]をモリモリ積んでいる傾向があるが、その大量の[[メモリ]]を食い尽くすまでに長い時間がかかり、忘れた頃に一気に[[ガベージコレクション]]が発動することで、とてつもない長時間のストップ・ザ・ワールドが発生するケースが多い。
 +
 
 +
一方、[[ITドカタ]]に配給されるショボい[[スペック]]の[[PC]]、いわゆる[[社畜PC]]での開発時点ではメモリ不足により頻繁かつ小規模なガベージコレクションが行われるため問題発覚しないことが多い。[[単体テスト]]や[[結合テスト]]はやっても長時間の[[耐久テスト]]はしないことが多いのも問題の原因だ。
  
 
===SSD===
 
===SSD===

2019年12月3日 (火) 06:48時点における最新版

ストップ・ザ・ワールド英語:stop the world)とは、ガベージコレクションを搭載したプログラミング言語実行環境において、ガベージコレクション発動時にプログラムパソコンフリーズしたかのような状態になる現象のことである。

ガベージコレクションが終わると何事も無かったかのようにプログラムは動きだす。

オレの能力は「5秒間」だけ時を止められる………
そして動き出す 

概要[編集 | ソースを編集]

ストップ・ザ・ワールドは、ガベージコレクションアルゴリズムの多くが、自動かつ漏れなくメモリを解放するためにはメインスレッドを停止した状態で実行する必要がある、ということが原因で発生する。

パソコン[編集 | ソースを編集]

8ビットパソコンの時代に一世風靡したMS-BASIC系では1分以上もザラであり時には5分以上のストップ・ザ・ワールドも珍しくなかったが、最近ではそこまで凄いのは稀である。

サーバー[編集 | ソースを編集]

ストップ・ザ・ワールドは運用中のサーバーで発生すると監視室はパニック状態になる。 とくに冗長構成を完璧に組んだサーバー群では数十秒の停止でもフェイルオーバークラスターが発動したりと一大事に発展することも多い。

ハードディスクデフラグの時間が大容量なほど長時間になるのと同様に、ガーベジコレクションによるストップ・ザ・ワールドの停止時間も基本的にメモリの搭載量に比例する。

一般的にJavaで書かれたプログラムを動かすサーバーはアホみたいにメモリをモリモリ積んでいる傾向があるが、その大量のメモリを食い尽くすまでに長い時間がかかり、忘れた頃に一気にガベージコレクションが発動することで、とてつもない長時間のストップ・ザ・ワールドが発生するケースが多い。

一方、ITドカタに配給されるショボいスペックPC、いわゆる社畜PCでの開発時点ではメモリ不足により頻繁かつ小規模なガベージコレクションが行われるため問題発覚しないことが多い。単体テスト結合テストはやっても長時間の耐久テストはしないことが多いのも問題の原因だ。

SSD[編集 | ソースを編集]

また、プログラミングだけではなく、近年ストレージとして広く普及したSSDにおいても未使用領域を確保するためにガベージコレクションが行われているが、書込み処理が集中しガベージコレクションが追いつかなくなるとストップ・ザ・ワールドのような状態に陥る。これをプチフリという。近代的なSSDではプチフリを抑制するためにオーバープロビジョニング領域を搭載している製品が多い。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]