ツールからDBへの1接続で生成されたpcapサイズを検証
キャプチャ構文
#ループバックIF指定
dumpcap.exe -w C:\tmp\capture.pcap -i 2 -f "port ポート番号"
- 処理
- DB接続
- 日付を出力するだけのselect文を流してexit
- 上記を10回ループ
- キャプチャされたパケット数 970
- サイズ
- サイズ 5.65 MB
- ディスク上のサイズ 5.65 MB #サイズと同じ
10接続で5.65MB
100接続で56.5MB
1000接続で565MB
selectで返されるデータ量を増やしてみる
- 処理
- DB接続
- DB上の全オブジェクト情報 (オブジェクト名や種類や作成時刻などのメタデータ) をselectするSQLを流してexit
- 26カラム, 22086レコードが返される
- 実行時間23秒
- ループなし1回のみ
- キャプチャされたパケット数 5998
- サイズ
- サイズ 1.7MB
- ディスク上のサイズ #同上
データ多い方を基準にしようかな ..
1接続で1.7MB
10接続で17MB
100接続で170MB
1000接続で1.7GB
けっこうやな..
うーん、select文だと結果の量に応じてキャプチャされるパケットも多くなる
DMLなら結果として返ってくるのは成功失敗とかだからキャプチャ量は小さい
ああ、-a (自動停止) オプションで指定サイズに達したら自動終了かければいいのか
プラス、ファイルサイズでのローテーションもしておけば (-b filesize:xxKB)、
指定した以上にディスク容量食わないし、サイズで分割されたファイルで解析できる
-a/-bを併用できなかった
-aの制限サイズを超えて、-bだけ効いて無限にローテーションされてく
#以下は3MB制限かけたが1MBローテだけ効いて4個以上ファイルが作成されてくところ
c:\Program Files\Wireshark>dumpcap.exe -w C:\tmp\capture.pcap -i 2 -f "port 1521" -a filesize:3072 -b filesize:1024
Capturing on 'Adapter for loopback traffic capture'
File: C:\tmp\capture_00001_20201208203145.pcap
Packets: 3382 File: C:\tmp\capture_00002_20201208203201.pcap
Packets: 6812 File: C:\tmp\capture_00003_20201208203213.pcap
Packets: 10228 File: C:\tmp\capture_00004_20201208203228.pcap
Packets: 13594 File: C:\tmp\capture_00005_20201208203240.pcap
Packets: 17039 File: C:\tmp\capture_00006_20201208203252.pcap
Packets: 20452 File: C:\tmp\capture_00007_20201208203305.pcap
Packets: 23832 File: C:\tmp\capture_00008_20201208203317.pcap
Packets: 27224 File: C:\tmp\capture_00009_20201208203330.pcap
Packets: 30660 File: C:\tmp\capture_00010_20201208203343.pcap
Packets captured: 31194
Packets received/dropped on interface 'Adapter for loopback traffic capture': 31194/0 (pcap:0/dumpcap:0/flushed:0/ps_ifdrop:0) (100.0%)
-aか-bのどちらかしか効かないとなると、-b優先しかない
GB級のpcapなんてWireSSharkで読み込めないしバイナリデータだから単純なファイル分割も無理なはず
本番環境でどのくらいのサイズになるかは、解析するためにファイルサイズ分割はかけて、1時間とかの期間決めて別コンソールからtaskkillするしかないか
キャプチャ中に別コンソールでtaskkill検証
#強制終了オプションが必要
C:\tmp>taskkill /im dumpcap.exe
エラー: プロセス "dumpcap.exe" (PID 3500) を強制終了できませんでした。
理由: この処理は、/F オプションのみで強制終了できます。
C:\tmp>taskkill /f /im dumpcap.exe
成功: プロセス "dumpcap.exe" (PID 3500) は強制終了されました。
C:\tmp>
強制終了時に出力先だったpcapでもWireSharkで普通に解析できた