メモリーリークを勉強中
いろんなメモリー割り当てがあるんだなーと、PCドクターの講座を受講。参加者10名弱だけど、みんな必死・・・どうやら中堅の地方企業でITインターネットで生き残りをかけて必死に勉強してる。私はのほほんと興味本位で参加で申し訳ない気がする・・・
スワップ マシンの仮想メモリ(HDDの一部をメモリ空間として使う)の予約部分でUNIXやLINUXでは2GBが割り当てられている。もちろんスワップにかかるようになってくる、ということは、何らかのメモリー違反や回帰問題により「メモリ食い潰し」が生じていることは明らかなので、ユニットをチェックする必要がある。ハード資源とソフトウエアの両方で見直すべき。
スラッシング 回帰処理でメモリが食い潰されている状態であり、例えば、循環参照などがあげられる。配列AをCに代入し、BがCを読みつつ、Aをインクリメントして、AはCの値であるなら条件を終わる、などのケースでは、無限ループで変数がメモリ最大まで達し、更にbreak処理をしていないため、永遠とOSの制限ぎりぎりまで回り続ける。
メモリリーク ソフトウエア的にメモリの最大を制限しないまま、バグなどにより循環参照が生じると、どこまでもメモリ空間を食い荒らし続ける現象である。スラッシングはその行為を、メモリーリークはその状態を示す用語と覚えるとよい。
アンリミテッドスワップ MAC−OSXのみ実装されているスワップSTAT概念であり、1ページを64Mの小さなページファイルに収めて、必要に応じて、64M,128M,256M〜といったスワップページファイルを生成し、スワップによるOS限界上限もクリアしつつ、全体の処理が重くならないアップル独自の規格である。
もっとも、スワップが発生すれば重くなるのは当然で、アップルのページスワップも重くなる。ただし、他のLINUXサーバなどにおけるスワップと比較して、何千倍速も早いというのがアップルOSXのスワップ処理の特徴だが、重くなるのは当然。
回帰命令からの復帰例(i7ベース)
LINUXサーバ 2GBスワップ時 halt命令強制 ⇒ 復帰まで382秒
OSXサーバ 4GBスワップ時 stop命令強制 ⇒ 復帰まで17秒
さくらインターネット 0.3GBスワップ時 stop命令 ⇒ 復帰まで1時間
(rebootで復活するしかないが、データベースやリソースが吹き飛ぶことがある)
なるほど、レンタルサーバー程度じゃ、ワードプレスとかダメなんですね。
Trackback URL: トラックバック用URLを生成するには、JavaScriptを有効にしてください。
No trackbacks
コメント(0)