Communes

メモリーリークを勉強中

スラッシング、スワップ、メモリリーク、STATなど講習会

いろんなメモリー割り当てがあるんだなーと、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)



エモティコン
投稿から7日が経過した記事のコメントはスパム防止のため簡単なクイズにお答え下さい
個人情報を記憶
通知
アドレス非表示
注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。
Copyright (C) 2024 Communes ™ All Rights Reserved.