0

特定の時間にスワップとの間で移動したデータの量を取得する (簡単な (?)) 方法はありますか? おそらく、すべてのプロセスと時間にわたって統合されるか、特定のプロセスと時間にわたって統合されるでしょうか?

ストーリー: 私はスワップする傾向があるマシンを持っています。ただし、スワップが「積極的に」使用されているかどうかはわかりません。つまり、常にスワップしている場合、または実際には使用されていない共有ライブラリだけがしばらくしてスワップされ、最後に mem で「アクティブな」メモリ使用が発生する場合です。

したがって、スワップの使用が深刻ではない可能性があることを慰める方法を探しています...

乾杯、アイデアに感謝、トーマス

4

2 に答える 2

0

これは、SystemTap を介して比較的簡単に実行できます (カーネル MM サブシステムを知っている場合)。swapin/swapout を実行し、対応するプローブを作成し、プローブからインクリメントされる 2 つのカウンターを作成する関数の名前を知っておく必要があります。最後に、N 秒ごとに起動され、現在のカウンターをダンプしてリセットするタイマーが必要です。

于 2013-08-07T13:18:15.680 に答える
0

これは、vmstat を使用して呼び出し間でスワップ イン/アウトされたページの総数を取得するための一時的な解決策です。

#!/bin/sh
OLDSWAPPEDIN=$SWAPPEDIN
OLDSWAPPEDOUT=$SWAPPEDOUT
PAGEINOUT=$(vmstat -s | grep swapped 2>&1)
SWAPPEDIN=`echo $PAGEINOUT | awk '{print $1}'`
SWAPPEDOUT=`echo $PAGEINOUT | awk '{print $5}'`
SWAPPEDINDIFF=`expr $SWAPPEDIN - $OLDSWAPPEDIN`
SWAPPEDOUTDIFF=`expr $SWAPPEDOUT - $OLDSWAPPEDOUT`

ストレージ変数の一時ファイルを回避しようとしました(したがって、それを入手するか、ログイン時に変数を作成する必要があります)

于 2013-08-08T09:22:00.210 に答える