ただのメモ書きです。
転送速度を見るため大量のファイル欲しいなーって時に即席で作りたいと思いつつ、fsutilが思い出せなかったり、for分を区切るのは「,」と「;」のどちらか思い出せないときのためのメモです。
当たり前ですが悪用厳禁です。
以下は1KBのファイルを20個作成しています。
fsutil file createnew "test_1" 1024
for($count=2;$count -le 20;$count++){
Copy-Item "test_1" "test_$count"
}
Windows11やWindowsServer2025からアウトバウンドのSMB署名必須になったからどの程度影響あるか調べないとなー。
SMB 署名動作の制御Windows 11 の第三者サーバーおよび Windows サーバーで SMB 署名を無効にする方法。
100万ファイルぐらいrobocopyすれば性能影響出てくれるのかな。
ここで少し気になったけど、ファイルを大量に作成する際に1個だけ作成してあとはコピーと、全てfsutilで作成するのとではどの程度性能差があるんだろう。
まー当たり前だけどコピーのほうが早いと思うんだけどね。
まずはコピー方式です。
$before=Get-Date
for($count=1;$count -le 200;$count++){
fsutil file createnew "test_$count" 1024 > $null
}
$after=Get-Date
($after-$before).TotalMilliseconds
上記のコードを実行すると562.8966ミリ秒でした。
次に1個ずつ手作りです。
$before=Get-Date
for($count=1;$count -le 200;$count++){
fsutil file createnew "test_$count" 1024 > $null
}
$after=Get-Date
($after-$before).TotalMilliseconds
上記のコードを実行すると6044.3684ミリ秒でした。
ちなみに標準出力させた場合(> $nullを削除)は6310.2778ミリ秒でした。
本当は数十~百回ぐらい自動で実行させて平均値取ったほうが良いと思うけど、流石にファイル作成の性能はそう使われることはないだろうなー。
SMB通信で署名あり、なし、暗号化あり、なしの組み合わせだったらやる意味はありそうだけど、WindowsServerは大抵ActiveDirectoryの管理下になっているだろうし、最低3台のEC2を構築しないといけないのか。
まー、性能差がどの程度あるかだけならNTLMでも良いかな。
流石に仕事でやる必要が出たら構築するけど。
次書くとしたら良く忘れるWhere~、Select~とか書いておきたいな。


コメント