Daily Grind

システム開発関連の忘備録です

空きメモリ確認

bash-3.2# sync; echo 3 > /proc/sys/vm/drop_caches; vmstat -a

バッファの内容をディスクに書き込み、キャッシュをクリアしてvmstat

以下のようにfreeメモリ値が表示される。

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 0  1      0  57580 159152 111568    0    0   349     5 1015 1741  9  3 85  3  0

テープ操作コマンド一覧

テープ操作コマンド一覧

コマンド 説明
mt -f /dev/nst0 eod 最後まで読み込む
mt -f /dev/nst0 rewind 最初まで巻き戻す
mt -f /dev/nst0 status 状態を確認
mt -f /dev/nst0 bsf 1 指定した数値だけ巻き戻し
mt -f /dev/nst0 fsf 1 指定した数値だけ進む
mt -f /dev/nst0 weof 1 指定した数値だけEOFを書き込む
mt -f /dev/nst0 erace テープを削除する
tar cvf /dev/nst0 dammy.tgz ファイルを書き込む
tar tvf /dev/nst0 書き込まれているデータを表示する
tar xvf /dev/nst0 書き込まれているデータを取り出す
mt -f /dev/nst0 offline テープの取り出し
mt -f /dev/nst0 status;tar tvf /dev/nst0;mt -f /dev/nst0 fsf 現在位置を表示して、中身を表示して次に移動する


テープヘッダー位置について

+―――+―――――+―――+―――――+―――+―――――+―――+―――――+―――+
|BOT|DATA1|EOF|DATA1|EOF|DATA2|EOF|INFO2|EOF|
+―――+―――――+―――+―――――+―――+―――――+―――+―――――+―――+

rewind :BOTまで移動
fsf :次のEOFまで移動
tar :次のEOFの前に移動(データ部のEOFであって、テープとしてはEOFまでいかない)

参考サイト
http://se-memo.cocolog-nifty.com/blog/2008/08/post_6497.html
http://futuremix.org/2004/11/linux-tar-backup
http://d.hatena.ne.jp/iww/20110616/1308192206

Linuxで帯域制限

以下のコマンドを入力すると、eth0の帯域が200mbpsに制限されます。

tc qdisc add dev eth0 root handle 1:0 tbf rate 200mbit burst 25kb limit 250kb

すでにコマンドが入力され、設定されている場合は以下のエラーが表示されます。

RTNETLINK answers: File exists

設定内容の確認は以下のコマンドです。

tc -s qdisc

設定を解除する場合は以下のコマンドです。

tc qdisc del dev eth0 root


【参考サイト】
http://www.hiihah.info/index.php?Linux%E3%81%A7tc%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%B8%AF%E5%9F%9F%E5%88%B6%E5%BE%A1

遅延とか設定できる模様
http://blog.bitmeister.jp/?p=3930

VIPの設定

/etc/sysconfig/network-scripts/ifcfg-eth0の場合

eth0をコピーしてeth0:1を作成します。

/etc/sysconfig/network-scripts/ifcfg-eth0:1

IPADDRとDEVICEとNAMEを変更してください。

※IPADDRはVIP、DEVICEにはeth0:1のようにしてください。


 /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.9.103
NETMASK=255.255.255.0
ONBOOT=yes
NAME=eth0


/etc/sysconfig/network-scripts/ifcfg-eth0:1

DEVICE=eth0:1			※変更
BOOTPROTO=static
IPADDR=192.168.9.113		※変更(VIPを設定)
NETMASK=255.255.255.0
ONBOOT=yes
NAME=eth0:1			※変更(NAMEが無い場合は追記)

設定後はネットワークの再起動を行ってください。

service network restart

マトリクスでの論理検証(メモ)

 マトリクスでの論理検証メモ

 ※個人的なメモです。



 簡単に言うと、以下のような表を作ります。

+――――+――――――+――――――+――――――+――――――+
|    |イベント-1|イベント-2|イベント-3|イベント-N|
+――――+――――――+――――――+――――――+――――――+
|状態-1|      |      |      |      |
+――――+――――――+――――――+――――――+――――――+
|状態-2|      |      |      |      |
+――――+――――――+――――――+――――――+――――――+
|状態-3|      |      |      |      |
+――――+――――――+――――――+――――――+――――――+
|状態-N|      |      |      |      |
+――――+――――――+――――――+――――――+――――――+

 状態-1であるときに、イベント-1がきたらこうしてこうなる、
 イベント-2がきたらこうしてこうなる、… というのをマスの中に書いていくという作業です。

 これにより、ある状態で、あるイベントが発生したときの処理が明確になり、タイミング障害をつぶせます。


 マスの中は、普通、以下の内容が書かれます。
- その場合の処理内容
- 処理後の状態


 まずは期待値ではなく、現版での実際の処理内容を書いてください。

 書いてみると、おそらく、処理内容がおかしい、状態遷移がおかしい、処理がなくてマスが埋められない(これがタイミング障害と呼ばれるもの)というのが出てくると思います。

 作り方の順序としては、以下が良いでしょう(Excelが良いと思う)。

0) 何を起点にするか

起点をどこにするか、きめましょう。

1) 横軸(イベント)を抽出する。

   どんなイベントを受けるのかをずらずら書いていきます。
   たとえば「センサーからの機器検出通知受信」とか。

   ※私はイベントを先に抽出する方が楽だと思いますが、どうかな。
状態は、どれを状態と言うかで頭を使うので。

2) 縦軸(状態)を抽出する。

どんな状態があるのかをずらずら書いていきます。
   普通は「イベントを待っている状態」が1番に来るでしょう。

3) 各マスを埋めていきます。

パフォーマンス測定

[コンピュータの管理] - [パフォーマンス] - [データコレクター] - [ユーザー定義]
を選択し、[新規作成] - [データコレクターセット]を選択

「手動で作成する」を選択する

「データログを作成する」で「パフォーマンスカウンター」をチェック

「追加」を選択する。
※サンプルの間隔はデフォルト(15秒)でよい。

使用可能なカウンターとして、「Process」を選択し、以下を追加
・Handle Count
・Private Bytes
・Thread Count
・Working Set
・Working Set - Private
選択したオブジェクトのインスタンスから
測定するプロセスを選択する(起動しておく必要あり)

※↑のはCPUはとってないので、採取したいプロセスの
 「Process」オブジェクトから採取される「ProcessorTime」(ちがうかも)
 を採取したほうがよいかも。

で完了

追加したやつを「再生」する。
測定をやめるときは「停止」する。
 C:\PerfLogs配下にblgファイルができているので開いて確認。