-->

2010-01-31

munin-nodewin32のmemoryのswap

この記事は munin-nodewin32 の memory の swap に関しての参考です。

Visual C++ 2008 Express Edition でテストしました。
munin-nodewin32/svnroot/munin-node/src/plugins/memory/MemoryMuninNodePlugin.cpp
-    ".\n", mem.ullTotalPhys-mem.ullAvailPhys, mem.ullTotalPageFile-mem.ullAvailPageFile, mem.ullAvailPhys);
+    ".\n", (mem.ullTotalPhys-mem.ullAvailPhys), ((mem.ullAvailPageFile<=mem.ullTotalPageFile)?(mem.ullTotalPageFile-mem.ullTotalPhys-mem.ullAvailPageFile+mem.ullAvailPhys):0), (mem.ullAvailPhys));
http://support.microsoft.com/kb/277021/ja

予測(間違っています)
コミットチャージトータル = メモリートータル + スワップトータル
スワップトータル = コミットチャージトータル - メモリートータル

コミットチャージ空き = メモリー空き + スワップ空き
スワップ空き = コミットチャージ空き - メモリー空き

スワップ現在 = スワップトータル - スワップ空き
             = コミットチャージトータル - メモリートータル - コミットチャージ空き + メモリー空き

cygwin の /proc/meminfo と値が違うので間違っています。
メモリの利用とスワップファイルの利用の合計ではないです。
# 間違っている
(ullTotalPageFile - ullAvailPageFile) >= (ullTotalPhys - ullAvailPhys)

こちらは確認した限りでは、あっています。
ullTotalPhys + pagefile.sysのサイズ = ullTotalPageFile

0 件のコメント: